NoSuchMethodError:org.codehaus.jackson.type.JavaType

时间:2012-08-02 19:00:15

标签: java spring google-app-engine jackson

我的应用程序正在抛出以下错误,但我的应用程序中有jackson-core-asl-1.4.2jackson-mapper-asl-1.4.2

Caused by: java.lang.NoSuchMethodError: org.codehaus.jackson.type.JavaType.<init>(Ljava/lang/Class;)V
    at org.codehaus.jackson.map.type.SimpleType.<init>(SimpleType.java:32)
    at org.codehaus.jackson.map.type.TypeFactory._fromClass(TypeFactory.java:254)
    at org.codehaus.jackson.map.type.TypeFactory._fromType(TypeFactory.java:266)
    at org.codehaus.jackson.map.type.TypeFactory.type(TypeFactory.java:57)
    at org.codehaus.jackson.map.ObjectMapper.<clinit>(ObjectMapper.java:49)
    at org.springframework.web.servlet.view.json.MappingJacksonJsonView.<init>(MappingJacksonJsonView.java:59)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:126)
    at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:134)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
    ... 48 more
.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:126)
    at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:134)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
    ... 48 more

可能是什么原因?应用程序之前的工作非常奇怪并将代码提交给SVN,然后当我签出并重新运行所有内容时,我收到此错误......

2 个答案:

答案 0 :(得分:13)

这看起来几乎肯定是由于“核心”和“映射器”罐子的不兼容版本。您可能通过类路径使用了不兼容的版本。

答案 1 :(得分:7)

您遇到的问题是由于Google App Engine SDK中的更新(我认为1.6.1?)。

我遇到了同样的问题,所以我运行TattleTale来查看是否存在一些依赖性问题。瞧,org.codehaus.*与以下两个图书馆存在冲突:

  • google_sql.jar
  • 杰克逊核-ASL-1.6.3.jar

虽然你的杰克逊图书馆与我的略有不同,但问题仍然存在。这个问题有两个修复:

  • 从war / webinf / lib目录中删除google_sql.jar。这将导致SDK无法通过验证检查,但如果忽略红色x,则代码应运行正常。
  • 将您的GAE SDK更新为1.6.2或更高版本。我认为他们在以后的SDK中解决了这个问题,但是更新还引入了一些编译器警告,所以在你跳跃之前先看看。