有几件事。首先,您不仅需要核心Jackson
xml依赖项,还需要实际的jaxrs提供程序
<dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-xml-provider</artifactId> <version>${jackson2.version}</version></dependency>
然后,您应该排除JAXB提供程序,这是Jersey所使用的默认提供程序。(我在测试时保留它没有问题,但是如果您不打算使用它,我将排除它)。它是由
jersey-server插入的,因此您应明确声明
jersey-server并
jersey-media-jaxb从中排除
<dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>${jersey2.version}</version> <exclusions> <exclusion> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-jaxb</artifactId> </exclusion> </exclusions></dependency>
然后,您将需要注册
JacksonJaxbXMLProvider(或
JacksonXMLProvider不需要或计划使用JAXB批注的)。
public CCRestResources() { register(JacksonFeature.class); register(JacksonJaxbXMLProvider.class); packages("com.cc.rest.jersey");}
最后,您需要将参数
ContextResolver化为
XmlMapper类型,而不是
ObjectMapper。可以看出这里的供应商寻找一
ContextResolver对
XmlMapper,没有
ObjectMapper。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)