我正在从现在只读谷歌的App Engine for Java中重新询问一个未解答的问题,因为我有完全相同的问题. ( original)

我已经使用jersey,jaxb和jackson整理了一个简单的json REST服务.它工作几乎很好,但是对服务器的第一个请求总是最终出现例外:
java.lang.NoClassDefFoundError:org / codehaus / jackson / xc / JaxbAnnotationIntrospector

由于某种原因,gae / jersey在初始请求中找不到此类.但是,这个工作之后的所有后续请求都很好,该类似乎已经被加载了.

附加信息:

我发送json到服务器 – 在chrome的检查员我可以看到:

Content-Type:application/json;charset=UTF-8
Request Payload {"stuff":["a","b"],"number":"10"}

相关的资源签名如下所示:

@POST
  @Consumes({MediaType.APPLICATION_JSON})
  public void run(Params params){};

任何帮助非常感谢!

编辑:这是完整的堆栈跟踪

WARNING: Error for /backtest
java.lang.NoClassDefFoundError: org/codehaus/jackson/xc/JaxbAnnotationIntrospector
    at org.codehaus.jackson.jaxrs.MapperConfigurator._resolveIntrospector(MapperConfigurator.java:169)
    at org.codehaus.jackson.jaxrs.MapperConfigurator._resolveIntrospectors(MapperConfigurator.java:144)
    at org.codehaus.jackson.jaxrs.MapperConfigurator._setAnnotations(MapperConfigurator.java:131)
    at org.codehaus.jackson.jaxrs.MapperConfigurator.getDefaultMapper(MapperConfigurator.java:70)
    at org.codehaus.jackson.jaxrs.JacksonjsonProvider.locateMapper(JacksonjsonProvider.java:609)
    at org.codehaus.jackson.jaxrs.JacksonjsonProvider.readFrom(JacksonjsonProvider.java:404)
    at com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy.readFrom(JacksonProviderProxy.java:139)
    at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:474)
    at com.sun.jersey.server.impl.model.method.dispatch.EntityParamdispatchProvider$EntityInjectable.getValue(EntityParamdispatchProvider.java:123)
    at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:46)
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethoddispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethoddispatchProvider.java:153)
    at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethoddispatchProvider$VoidOutInvoker._dispatch(AbstractResourceMethoddispatchProvider.java:166)
    at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethoddispatcher.dispatch(ResourceJavaMethoddispatcher.java:75)
    at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
    at com.sun.jersey.server.impl.uri.rules.RightHandpathRule.accept(RightHandpathRule.java:147)
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1483)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1414)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1363)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1353)
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:414)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
    at com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:895)
    at com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:843)
    at com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:804)
    at com.google.inject.servlet.FilterDeFinition.doFilter(FilterDeFinition.java:163)
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
    at com.google.inject.servlet.FilterDeFinition.doFilter(FilterDeFinition.java:168)
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:369)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.httpconnection.handleRequest(httpconnection.java:542)
    at org.mortbay.jetty.httpconnection$RequestHandler.content(httpconnection.java:938)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
    at org.mortbay.jetty.httpconnection.handle(httpconnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.lang.classNotFoundException: org.codehaus.jackson.xc.JaxbAnnotationIntrospector
    at java.net.urlclassloader$1.run(urlclassloader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.urlclassloader.findClass(urlclassloader.java:190)
    at java.lang.classLoader.loadClass(ClassLoader.java:306)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176)
    at java.lang.classLoader.loadClass(ClassLoader.java:247)
    ... 60 more

解决方法

从我可以告诉你最有可能没有 optional XC杰克逊的lib.

XC包允许您除了用于映射类的Jackson Annotations之外还可以使用Xml注释(JAXB).

从我可以告诉这个错误只会发生一次在杰克逊首次设置,除非你需要JAXB支持只是忽略这个问题.

App Engine java – Jersey / Jackson JaxbAnnotationIntrospector NoClassDefFoundError的更多相关文章

  1. 解决Jackson解析嵌套类问题(MismatchedInputException)

    这篇文章主要介绍了解决Jackson解析嵌套类问题(MismatchedInputException),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. 利用Jackson解析JSON的详细实现教程

    JSON对于开发者并不陌生,如今的WEB服务等都是以JSON作为数据交换的格式。学习JSON格式的操作工具对开发者来说是必不可少的。本文将介绍如何使用Jackson开源工具库对JSON进行常见操作,需要的可以参考一下

  3. Jackson中json格式的字符串与对象的互相转换方式

    这篇文章主要介绍了Jackson中json格式的字符串与对象的互相转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  4. jackson解析json字符串,首字母大写会自动转为小写的方法

    下面小编就为大家分享一篇jackson解析json字符串,首字母大写会自动转为小写的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  5. Kotlin密封类Jackson在记忆中的不同位置

    最近,我开始使用Kotlin,在使用Spring测试JSON映射时遇到了一些奇怪的行为value=插孔集成测试$SealedObject@6727e0cd<-------------结果(弹簧)=千斤顶集成测试$SealedObject@6727e0cd<;-----相同内存位置结果测试=插孔集成测试$SealedObject@3c8e3f98正如您所看到的,spring-objectmapper返回的值在内存中具有与基值相同的引用。但自己创建的objectmapper返回的对象在内存中的不同位置

  6. Spring Boot请求体中DTO的严格验证

    缺少什么?

  7. Jackson多态序列化图文详解

    jackson允许配置多态类型处理,当进行反序列话时,JSON数据匹配的对象可能有多个子类型,为了正确的读取对象的类型,我们需要添加一些类型信息,下面这篇文章主要给大家介绍了关于Jackson多态序列化的相关资料,需要的朋友可以参考下

  8. ajax json异步springmvc http请求返回状态码为406的解决

    是因为缺少json相关jar包,网上很多人只是给出了前两个jar,其实不全,依旧406,应该给出四个

  9. ssm 下 前端ajax 访问后台 以及出现的错误

    前端使用AJax发送数据到后台,后台接受数据上代码:maven:在Spring配置文件下添加Json前端使用Jaon需要添加JQueryJSP页面添加jQyery准备完成,开始ajax一个简单的表单使用jQuery可能出现的错误有时候因为没有log信息,不知道是什么错,浏览器只是出现一个白页面,没有内容,那么就打开浏览器的控制台(火狐的是F12),查看网络信息,看一下HTTP错误1,415unsu

  10. ajax六使用 Jackson

    2.可以在类的getter方法上添加注解@JsonIgnore,在转为JSON对象时以忽略该属性。

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部