JacksonJsonProvider 不适用于 CXF。
CXF v2.6.0 Jackson v2.1.2 (com.fasterxml.jackson) RESTClient(用于测试)
我确实在 beans.xml 中配置了如下所示的提供程序。
<bean id="jacksonMapper" class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd'T'HH:mm:ss.SSSZ"> </constructor-arg>
</bean>
</property>
</bean>
<bean id="jacksonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider">
<property name="mapper" ref="jacksonMapper" />
</bean>
在 jaxrs: 服务器中.....>
<jaxrs:providers>
<ref bean="jaxbProvider" />
<ref bean="jacksonProvider" />
</jaxrs:providers>
</jaxrs:server>
该应用程序被部署没有任何问题,它提供了良好的 JSON,而我将请求作为“application/xml”并将响应作为“application/json”。
当我尝试通过设置 Content-Type=application/json 在请求中提供 JSON 时,我面临 500 Internal Server Error
该请求通过 CXF 日志记录在日志文件中。
该请求根本没有登陆我的webservice的服务实现类。
请求正文中的 JSON 是:
{"SearchOrdersRequest":{"LoginCredentials":{"AppId":"BookStore","Username":"myuser","Password":"abcd1234","SecurityToken":"Vcvx45YilzX1"},"SearchHeader":{"SearchCategory":"Rep","FilterLogic":"1 AND 2","SearchParams":{"Field":"Order Number (s)","Operator":"EQUALS","Values":"600045335"}}}}
任何即时帮助表示赞赏。