我的猜测是您使用的是Glassfish,它使用MOXy作为其默认JSON提供程序。您可以使用禁用它
<init-param>。
<init-param> <param-name>jersey.config.server.disableMoxyJson</param-name> <param-value>true</param-value></init-param>
该
jersey-media-json-jackson具有自动发现功能,它应该自动注册。对于Glassfish,我不确定自动发现功能,以及它在内部使用的可能较低版本的Jersey,是否会导致其无法注册。但是无论哪种方式,您配置web.xml的方式都是启用类路径扫描,因此无论如何都应选择Jackson提供程序。
一些FYI
jersey-media-json-jackson
实际使用jackson-jaxrs-json-provider
。它只是将其包装在中JacksonFeature
,并可以自动发现它。- 如果仍然无法使用,您可以尝试创建一个功能来处理注册和禁用。例如
@Provider
public class JsonFeature implements Feature {
@Override
public boolean configure(FeatureContext context) {
context.property(“jersey.config.server.disableMoxyJson”, true);
// this is in jersey-media-json-jackson
context.register(JacksonFeature.class);// or from jackson-jaxrs-json-provider context.register(JacksonJsonProvider.class); // for JAXB annotation support context.register(JacksonJaxbJsonProvider.class); return true;}
}



