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格式的轉換工作