解决cxf+spring发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题

最近学习cxf+spring发布webservice服务,但是遇到服务发布成功,查看其wsdl文件的时候却缺少<wsdl:import><wsdl:message>标签,查看代码确实没什么问题,因为用来测试,代码比较简单,但就是不出现以上两个标签。百度谷歌到处找原因找不到。失望……

还是自己好好动手解决问题吧。

认真看发布后的wsdl文件,发现多了<wsdl:import>标签(<wsdl:importlocation="http://localhost:8080/cxf-Spring-server/Hello?wsdl=HelloWorld.wsdl" namespace="http://dao.testCxfSpring.spg.com/"></wsdl:import>),将<wsdl:import>标签中的location拿出去在浏览器中打开,里面是“丢失”的两个标签,这时候就发现其实并不是丢失了,而是包含在了<wsdl:import>标签内

为什么会包含在了<wsdl:import>标签内?再研究,发现<wsdl:definitions>标签内的targetNamespace属性和<wsdl:import>namespace属性的值不同,发现原因所在

最终解决方案

1,将接口类和实现类放在同一个包下,问题即可解决

2,将接口类和实现类中的注解中加入命名空间属性配置,@WebService(targetNamespace="XXXXX"),两个配置成一样即可,或者接口的配置成实现类的默认值、实现类的配置成接口的默认值也可解决问题。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fengspg/article/details/7404383
个人分类: webservice java
上一篇cxf+spring发布webservice服务(客户端)
下一篇菜鸟的jquery学习笔记,jquery输入框添加默认值,jquery提交表单,jquery获取字符串长度,并截取字符串
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭