Jackson + Tomcat - java.lang.VerifyError:无法从最终类继承 [英] Jackson + Tomcat - java.lang.VerifyError: Cannot inherit from final class

查看:763
本文介绍了Jackson + Tomcat - java.lang.VerifyError:无法从最终类继承的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个在Tomcat 6中运行的Java Web服务,它接受JSON输入。我试图使用Jackson ObjectMapper来解析输入json。但在初始化ObjectMapper对象时,我收到此错误

I have a Java webservice running in Tomcat 6 which accepts JSON input. I am trying to use Jackson ObjectMapper to parse the input json. But when initializing the ObjectMapper object I am getting this error

16:08:13,616 ERROR [[jersey]] Servlet.service() for servlet jersey threw exception                                                                                                                        
java.lang.VerifyError: Cannot inherit from final class                                                                                                                                                    
    at java.lang.ClassLoader.defineClass1(Native Method)                                                                                                                                                  
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)                                                                                                                                        
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)                                                                                                                                            
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)                                                                                                                            
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2733)                                                                                                        
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1124)                                                                                                                
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1612)                                                                                                                
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)                                                                                                                
    at com.test.project.offline.ws.WsApiResource.updateData(WsApiResource.java:169) 
.......

在第169行我有这个 ObjectMapper mapper = new ObjectMapper();

At line 169 I have this ObjectMapper mapper = new ObjectMapper();

在单元测试中本地调用com.test.project.offline.ws.WsApiResource.updateData()方法时,它可以正常工作。

When calling com.test.project.offline.ws.WsApiResource.updateData() method locally in a unit test it works without any error.

请帮我解决这个问题。我使用的是Jackson 1.8.4和tomcat 6.

Kindly help me in fixing this. I am using Jackson 1.8.4 and tomcat 6.

更新:解决了这个问题。问题是依赖树中不同版本的jackson。排除它修复了问题。

UPDATE: Fixed the issue. Problem was a different version of jackson in the dependency tree. Excluding it fixed the problem.

推荐答案

我也遇到了与Apache Lucene相同的问题。我的/ WEB-INF / lib文件夹中有lucene-core-3.6.0.jar和lucene-core-3.5.0.jar。删除一个或另一个也解决了我的问题。它必须是版本问题。

I also had the same issue with Apache Lucene. I had lucene-core-3.6.0.jar and lucene-core-3.5.0.jar in my /WEB-INF/lib folder. Removing one or the other also fixed my problem. It must be a versioning issue.

这篇关于Jackson + Tomcat - java.lang.VerifyError:无法从最终类继承的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆