使用 CXF 构建WebService中的有关问题分享
使用 CXF 构建WebService中的问题分享
CXF成为java构建Webservice的首选。虽然很简单,但是由于历史原因,还是有不少问题。
首先,因为版本问题,在3.0以后的版本,
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
这一句可以删掉了。因为无法找到了,不需要了。
其次,在使用 <jaxws:server> 还是 <jaxws:endpoint> 发布服务的问题也可以不用考虑了,这基本都是一样的。
最后是个比较郁闷了很久的问题,那就是发布服务后,通过 http://localhost/context/foo?wsdl 查看wsdl时发现,具体的参数没有被wsdl描述,只是放了一句 <soap:body use="literal"/> ,让人摸不着头脑。什么WebParam都用上了也没能解决,最后找到原因,要加上 targetNamespace ! (接口,实现都要加)例如
@WebService(targetNamespace="http://app.company.com")
然后问题解决了。
<xs:complexType name="test">
</xs:complexType>
这样看起来好多了。CXF 暴露接口的具体参数名称类型的问题,就此解决了。
目前就这么多问题,记下来以便后来人搜索翻阅。