Вот ситуация.
Когда я использую EclipseLink MOXy с Spring 3 MVC для генерации JSON вывод, он выдает следующее исключение, когда я пытаюсь установить тип носителя json со следующим оператором.
marshaller.setProperty(JAXBContextProperties.MEDIA_TYPE, "application/json");
javax.xml.bind.PropertyException: name: eclipselink.media-type value: application/json
at org.eclipse.persistence.jaxb.JAXBMarshaller.setProperty(JAXBMarshaller.java:520)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
Я также использую JAXBviews для создания XML-вывода для других служб в приложении. Вот объявление bean-компонентов в application-context.xml для того же самого.
<bean id="jaxbMarshaller" class="com.abc.restws.marshallers.ClasspathScanningJaxb2Marshaller">
<property name="basePackages" ref="jaxbBasePackages" />
</bean>
<bean id="jaxbMarshallingView" class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller" ref="jaxbMarshaller"/>
</bean>
<bean id="jaxbJsonMarshallingView" class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="contentType" value="application/json"/>
<property name="marshaller" ref="jaxbJsonMarshaller"/>
</bean>
В чем причина этой ошибки? Как я могу исправить эту ошибку? Вывод XML генерируется нормально, но для JSON выдается это исключение. Вы можете видеть в деталях исключения, что он также использует правильный класс JAXBMarshaller для установки типа носителя json. Пожалуйста посоветуй.
"org.eclipse.persistence.jaxb.JAXBMarshaller.setProperty(JAXBMarshaller.java:520)"