MOXy在Jersey 2中作为XML JAXB提供程序

时间:2019-04-05 04:08:24

标签: java eclipselink jersey-2.0 moxy

我已将jersey-media-moxy添加到我的pom.xml

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
        <version>${JERSEY_VER}</version>
    </dependency>

,并且我已经在Jersey的类名中添加了MoxyXmlFeature,并且我有一个jaxb.properties的文件,其中javax.xml.bind.context.factory指向了eclipselink的实现,但是我仍然无法使MOXy作为Jersey来工作JAXB。

我得到的错误是:

MessageBodyWriter not found for media type=application/xml

确实,MOXy似乎具有用于JSON的MessageBodyWriter,但不具有用于XML的消息。

我如何设法使其正常工作? 我还尝试制作自己的MessageBodyWriter,但似乎忽略了它。

这是我的web.xml文件

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.test.rest</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>
            org.glassfish.jersey.moxy.xml.MoxyXmlFeature;
            com.test.handlers.MOXyXmlProvider;
            org.glassfish.jersey.media.multipart.MultiPartFeature;
            com.test.handlers.GeneralExceptionMapper</param-value>
    </init-param>
    <init-param>
        <param-name>logRestRequests</param-name>
        <param-value>0</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

0 个答案:

没有答案