首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泽西1到2迁移,使用org.codehaus.jettison包(在媒体类型=application/json中找不到MessageBodyWriter)

泽西1到2迁移,使用org.codehaus.jettison包(在媒体类型=application/json中找不到MessageBodyWriter)
EN

Stack Overflow用户
提问于 2016-02-08 15:30:07
回答 1查看 496关注 0票数 1

将OSGi/Spring应用程序更新到泽西2。目前,使用泽西2编译和安装都很好,但是当我们的资源被访问时,我得到了这个错误:

MessageBodyWriter未找到媒体类型=application/json、type=class org.codehaus.jettison.json.JSONObject、genericType=class org.codehaus.jettison.json.JSONObject。

org.codehaus.jettison.json作为泽西的“媒体提供商”的当前配置细节。

·增加对泽西的依赖-媒体-json-jettison

·我在web.xml中指定了web.xml包,其中包含了特定于glassfish的init-param:

代码语言:javascript
复制
<init-param>
      <param-name>jersey.config.server.provider.packages</param-name>
      <param-value>
                    org.codehaus.jettison.json,
                    ...
      </param-value>
</init-param>

·将软件包添加到我们的webapp包bnd文件中:

代码语言:javascript
复制
org.codehaus.jettison.json,\

这表明它成功地在OSGi控制台中导入了它:

代码语言:javascript
复制
Imported packages  

org.codehaus.jettison.json; version="1.3.3"

控制台还显示了jersey-media-json-jettison包所使用的包:

代码语言:javascript
复制
packages org.codehaus.jettison.json  
 org.codehaus.jettison.json; version="1.3.3"<org.codehaus.jettison.jettison_1.3.3 [121]>  
    org.glassfish.jersey.media.jersey-media-json-jettison_2.22.1 [192]    

有什么想法吗?这里缺少什么来配置json提供者?

使用org.codehaus.jettison包是否需要编程配置才能作为json提供程序工作?

我问的问题对吗?

谢谢你,汤姆

EN

回答 1

Stack Overflow用户

发布于 2018-01-12 16:02:29

Jettison有一个用于MessageBodyWriterMessageBodyReaderorg.codehaus.jettison.json.JSONObject。由于某些原因,它没有被自动发现,即使jettison版本> 2.9 (至少对我来说是这样)。也许是因为它没有用@Provider进行注释。解决这个问题的方法是手动将相应的类添加到我的ResourceConfig中:

代码语言:javascript
复制
register(JettisonObjectProvider.App.class);

在此之后,创建如下响应

代码语言:javascript
复制
Response.ok(new JSONObject(), MediaType.APPLICATION_JSON).build();

就像1号球衣一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35273266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档