【发布时间】:2013-09-11 13:01:10
【问题描述】:
我想使用 Jackson 作为我的 JAX-RS 2.0 网络服务的 JSON 提供程序。对于 JAX-RS,我在 GlassFish 4 中使用 Jersey 2.0。使用 JAX-RS 1.x,我可以添加
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
在我的web.xml。我如何在 Jax-RS 2.0 和 Jersey 2.0 中做到这一点?
我实现了一个这样的应用程序类
public class MyRESTExampleApplication extends ResourceConfig {
public MyRESTExampleApplication() {
packages("com.carano.fleet4all.restExample");
register(JacksonFeature.class);
}
}
并将这些行添加到我的web.xml。
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.restExample.MyRESTExampleApplication</param-value>
</init-param>
但是我得到了一个例外的请求 org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class ...
我的pom.xml 看起来像这样
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
【问题讨论】:
-
谢谢!谢谢!我尝试了各种类路径恶作剧来尝试阻止此错误,但明确注册该功能是我可以修复它的唯一方法
标签: rest jersey jackson jax-rs glassfish-4