MOXy как провайдер XML JAXB в Джерси 2 - PullRequest
1 голос
/ 05 апреля 2019

Я добавил jersey-media-moxy в свой pom.xml

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

и добавил MoxyXmlFeature к именам классов в Джерси, и у меня есть файл jaxb.properties с javax.xml.bind.context.factory, указывающим на eclipselinkреализация, но все же я не могу заставить МОКСИ работать в качестве Джерси JAXB.

Я получаю ошибку:

MessageBodyWriter not found for media type=application/xml

И действительно, MOXy, похоже, имеет MessageBodyWriter для JSON, но не для 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>
...