gson TypeToken classNotFoundException

时间:2016-08-25 06:34:24

标签: java tomcat gson

webserver:tomcat

web framework:spring3

我使用gson-2.3.1

按照错误日志

java.lang.ClassNotFoundException: com.mysite.chart.**ChartCtrl$2**
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
**at com.mysite.chart.ChartCtrl.msyData(ChartCtrl.java:278)**
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)

和ChartCtrl 278一行是

Type objType = new TypeToken<ArrayList<HashMap<String, Object>>>(){}.getType();

我该如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

我也遇到过这个问题,在我的情况下,我导入的是错误的类,它在IDE的类路径中可用,但在运行时没有。

替换下面的一个:

import com.google.common.reflect.TypeToken;

有了这个:

import com.google.gson.reflect.TypeToken;

答案 1 :(得分:0)

当没有找到具有指定名称的类的定义时,抛出

ClassNotFoundException,并且通过查看stacktrace,因为它包含$ 2,它让我相信你(或某人)正在使用某些内部类或匿名内部类,它使用一些非.war文件包的库。

在这种特定情况下,我猜你没有在你的WEB-INF / lib文件夹中打包包含TypeToken类的gson jar。你能证实吗?