我发现这个问题有类似的问题,只想添加我的“2 美分”。在我的例子中,我将 Jersey 2.0 与 Jackson 一起使用,以便将 JSON 转换为对象,并将对象从我的其余接口转换为 JSON。这意味着我必须JacksonFeature
像ResourceConfig
这样注册:
import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.message.GZipEncoder;
import org.glassfish.jersey.server.ResourceConfig;
public class JacksonRestConfiguration extends ResourceConfig {
public JacksonRestConfiguration() {
register( new GZipEncoder() );
register( JacksonFeature.class );
}
我还在我的应用程序扩展上禁用了 Moxy:
import org.glassfish.jersey.CommonProperties;
@ApplicationPath("services")
public class RestApplication extends Application implements Feature {
public boolean configure( final FeatureContext context ) {
String postfix = '.' + context.getConfiguration().getRuntimeType().name().toLowerCase();
context.property( CommonProperties.MOXY_JSON_FEATURE_DISABLE + postfix, true );
return true;
}
}
上面的两个类都要求我保持球衣和provided
我pom.xml
的一样,以便正确生成战争文件:
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.13</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.13</version>
<scope>provided</scope>
</dependency>