1 配置过程中,由于使用的是spring 4.x版本与cxf版本2.x不匹配,好多功能不能使用。改变cxf版本3.x。
2 通过cxf发布普通的webservice接口没有问题。但是发布rest风格的webservic 是在使用@Produces(MediaType.APPLICATION_JSON)时遇到问题,没法将object转化为json。
报错—No message body writer has been found for class com.tech4j.demo.webservice.Person, ContentType: application/json”
解决:cxf3.x以上版本不提供默认的JSON Provider了,我们需要自己找一个第三方的Provider,设置给CXF框架,它才能够自动调用该Provider完成转换操作。
我们需要在发布服务的时候,为CXF的服务factory设置这个第三方的Provider,例如Jackson。代码如下:
JacksonJaxbJsonProvider jaxbProvider = new JacksonJaxbJsonProvider();
factory.setProvider(jaxbProvider);
这样一来,CXF就会自动调用这个Provider来完成符合JAXB标准的对象与JSON格式的转换工作