无法获取jersey 2应用程序以使用自定义杰克逊XmlMapper

无法获取jersey 2应用程序以使用自定义杰克逊XmlMapper,第1张

无法获取jersey 2应用程序以使用自定义杰克逊XmlMapper

有几件事。首先,您不仅需要核心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



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5507132.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存