您的位置:首页 > 编程语言 > Java开发

Springboot 集成阿里短信 ClassNotFound的坑

2017-08-08 18:27 495 查看

问题描述

使用Springboot 在IDEA开发中正常,在服务器上报ClassNotFound。

问题定位

后台报错误日志如下

017-08-08 17:59:46.527 ERROR 22612 --- [nio-8083-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder] with root cause

java.lang.ClassNotFoundException: com.google.gson.GsonBuilder
at java.net.URLClassLoader$1.run(URLClassLoader.java:372) ~[na:1.8.0_31]
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_31]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_31]
at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_31]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_31]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94) ~[msg-server-1.0-SNAPSHOT.jar:1.0-SNAPSHOT]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_31]
at com.aliyun.mns.model.serialize.topic.TopicMessageSerializer.getGson(TopicMessageSerializer.java:25) ~[aliyun-sdk-mns-1.1.8.jar!/:na]


首先查看IDEA上引入的包是由包含GSON包

其次使用Maven打包查看生成的Jar包中也包含GSON包。

没办法只好靠百度谷歌了,其中有一篇文章提到需要显示引入包来避开Springboot本身的bug

问题解决

在POM上添加GSON依赖(原GSON是由Ali短信客户端引入)

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>


重新打包上传OK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: