一.问题描述

今天在使用腾讯短信sdk进行Maven项目依赖过程中
添加以下依赖包:

<!-- 腾讯云-短信功能 --><dependency><groupId>com.github.qcloudsms</groupId><artifactId>qcloudsms</artifactId><version>1.0.6</version></dependency>

调用短信发送方法(模板发送)时项目报错,如下:

rg.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/http/client/config/RequestConfig
at org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1305)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:979)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
......
Caused by: java.lang.NoClassDefFoundError: org/apache/http/client/config/RequestConfig
at com.github.qcloudsms.httpclient.DefaultHTTPClient.fetch(DefaultHTTPClient.java:29)
at com.github.qcloudsms.SmsSingleSender.sendWithParam(SmsSingleSender.java:127)
at com.github.qcloudsms.SmsSingleSender.sendWithParam(SmsSingleSender.java:143)
at com.dz.sms.SmsUtil.sendTemplateSingleSms(SmsUtil.java:65)

二.原因分析

1.经过网上查找,大多数都说是缺少 httpclient
但本项目中已经添加了 httpclient 包:

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.2.5</version>
</dependency>

2.查看 Maven 依赖关系
发现 腾讯 qcloudsms 包依赖使用的 httpclient 4.5.3 ,原因终于找到了
jar包直接有冲突!

三.解决方法

方法1.修改原项目中的 httpclient 包版本号和 qcloudsms 中的版本号一致(4.5.3)。
方法2.使用 maven-shade 插件,过滤包冲突

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><relocations><relocation><pattern>org.apache.httpcomponents</pattern><shadedPattern>org.shaded.org.apache.httpcomponents</shadedPattern></relocation></relocations></configuration></execution>
</executions>
</plugin>

主要是配置使用 relocations 重命名冲突包

   <configuration><relocations><relocation><pattern>org.apache.httpcomponents</pattern><shadedPattern>org.shaded.org.apache.httpcomponents</shadedPattern></relocation></relocations></configuration>

腾讯短信集成报错误:NoClassDefFoundError: org/apache/http/client/config/RequestConfig相关推荐

  1. TP3.2如何加载第三方类库?加载腾讯短信sdk 报错。

    TP3.2如何加载第三方类库?加载腾讯短信sdk 报错 主要在于引入 Vendor('qcloudsms.index'); index.php后还需要use引入命名空间,不然就会报类未定义的错误. & ...

  2. ThinkPHP5结合云之讯短信验证简单案例

    ThinkPHP5结合云之讯短信验证简单案例 总体思路: 我这里以用户注册短信验证分析:        在用户输入正确的手机号码点击注册按钮时,使用Ajax发送一个我们手动生成的验证码和手机号码一起发 ...

  3. 阿里和云之讯短信发送服务

    目录 1 云之讯短信验证码 1.1 创建应用 1.2 创建短信模板 1.3 发送短信api 1.4 编写代码 1.5 编写测试用例 1.6 编写接口服务 2 阿里云短信服务 2.1 申请签名与模板 2 ...

  4. 云之讯php短信接口,菏泽java云之讯短信接口价格如何计算? 新锐信息科技服务至上...

    免费接码验证码接收平台 好用的接码平台有以下几个特征: 1.平台功能设置人性化:语音验证码+短信验证码一体化,方便用户使用.现在很多项目都慢慢开始了语音验证码的步伐. 2.平台稳定经营时间久:接码平台 ...

  5. 百度智能云-短信集成-java-jdk8

    1.百度智能云短信集成,提供了默认的sdk,不过这个sdk需要用到jdk中的 jdk.tools,所以jdk11没法用sdk. maven集成 <dependency><groupI ...

  6. php tp框架验证码,TP5框架使用腾讯短信验证码类库

    接到美国客户需求,在商城添加地址时候添加手机号需要进行短信校验,客户想使用腾讯云国际短信,看了下官方文档,总的来说太繁琐了,一些功能和api都不是我所需要的, 以下是整理出来的精简版api供框架使用, ...

  7. 腾讯短信发送(基于v3版本封装)

    安装模块 pip3 install tencentcloud-sdk-python -i https://pypi.douban.com/simple url # 发送短信 path('tencent ...

  8. 【JAVA】短信集成设计方案

    [JAVA]短信集成设计方案 一.系统集成需求 二.集成方案设计 三.接口设计 一.系统集成需求 1.现场巡视任务中,每一个巡视工单有开始和结束时间,当巡视任务超时.即当前时间已超过巡视工单的预计结束 ...

  9. 短信验证的实现(基于云之讯短信验证SDK)

    短信验证用途: 进行身份验证,验证手机号码是本人的 短信验证逻辑流程: 发送请求给服务器,根据服务器的返回Json/xml获取 返回码,创建时间. 根据返回码判断是否正确,正确会收到短信.不正确就收不 ...

最新文章

  1. 区块链系列4-智能合约
  2. XAMPP下的MYSQL解决中文乱码问题
  3. Gradle自动化之自动打包并上传到fir测试网站
  4. 普通话测试第四题评分标准_普通话考试中命题说话的扣分标准
  5. 什么是以太网光纤收发器,其产品特点和技术参数都有哪些?
  6. activiti 文档_免费、开源、多平台的PDF文档处理软件——PDFsam Basic
  7. jconsole中无法显示本地启动的tomcat
  8. [Android] 查看MTD,EMMC,MMC三种设备的分区
  9. JAVA代码实现下载解析网易云音乐到本地电脑的demo示例
  10. 罗技K380使用手册
  11. 使用IDEA工具远程调试SpringBoot应用
  12. 怎样更改计算机网络密码怎么办,wifi密码怎么改?
  13. 全面解读VTL(虚拟磁带库)
  14. 毕业设计 SSM毕业设计管理系统
  15. 第二届“强网”拟态防御国际精英挑战赛落幕,29支国内外精英队伍未能突破拟态防御,赛宁网安靶场平台完美支撑BWM新赛制.
  16. 新东方托福词汇(List 26 ~ List 30)
  17. cmd命令行下常见的注册表操作
  18. 度小满-数据仓库面试
  19. 旅游线路设计html,教学旅游线路设计方案
  20. 百度搜狗SEO快速排名模拟点击工具-提升关键词排名

热门文章

  1. 合并两个排序的整数数组A和B变成一个新的数组(归并排序)
  2. H3C认证有3大好处,大家仔细看哦
  3. 企业内容管理软件发展趋势及市场前景预期
  4. UEToUnity CLUT
  5. 签收电子承兑汇票需要注意的事项有哪些
  6. python 编辑数学公式_牛逼!Python编辑公式竟可以如此简单
  7. 东华大学2020考研计算机复试准备上机题解析答案_进阶篇(31-60)
  8. 9ibrowser浏览器升级最新102.0.90(cefsharp)
  9. 即时定位与地图构建(SLAM)与基于视觉的SLAM(VSLAM)
  10. android 7.1 字体大小设置,一加3t官方更新氢的Android 7.1.1,妥妥的第一时间换上クレPro 字体...