解决cxf+bboss发布的webservice缺少<wsdl:types>和<
发布时间:2020-12-17 00:57:01 所属栏目:安全 来源:网络整理
导读:cxf+bboss发布webservice服务(cxf+bboss发布webservice服务方法请参考文档: bbossgroups webservice引擎使用方法),服务发布成功,查看其wsdl文件的时候却缺少wsdl:types和wsdl:message标签,例如: ?xml version="1.0" encoding="UTF-8" ? - wsdl:definit
cxf+bboss发布webservice服务(cxf+bboss发布webservice服务方法请参考文档:
bbossgroups webservice引擎使用方法),服务发布成功,查看其wsdl文件的时候却缺少<wsdl:types>和<wsdl:message>标签,例如: <?xml version="1.0" encoding="UTF-8" ?> - <wsdl:definitions name="MaterialWServiceImplService" targetNamespace="http://impl.webservice.material.mms.sany.com/" xmlns:ns1="http://webservice.material.mms.sany.com/" xmlns:ns2="http://schemas.xmlsoap.org/wsdl/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.webservice.material.mms.sany.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:import location="http://10.8.135.224:8081/SanyMMS/cxfservices/queryTaskList?wsdl=MaterialWService.wsdl" namespace="http://webservice.material.mms.sany.com/" /> - <wsdl:binding name="MaterialWServiceImplServiceSoapBinding" type="ns1:MaterialWService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="queryAwaitTaskByUserNum"> <soap:operation soapAction="" style="document" /> - <wsdl:input name="queryAwaitTaskByUserNum"> <soap:body use="literal" /> </wsdl:input> - <wsdl:output name="queryAwaitTaskByUserNumResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> - <wsdl:service name="MaterialWServiceImplService"> - <wsdl:port binding="tns:MaterialWServiceImplServiceSoapBinding" name="MaterialWServiceImplPort"> <soap:address location="http://10.8.135.224:8081/SanyMMS/cxfservices/queryTaskList" /> </wsdl:port> </wsdl:service> </wsdl:definitions> 认真看发布后的wsdl文件,发现多了<wsdl:import>标签: <wsdl:import location="http://10.8.135.224:8081/SanyMMS/cxfservices/queryTaskList?wsdl=MaterialWService.wsdl" namespace="http://webservice.material.mms.sany.com/" /> 将<wsdl:import>标签中的location拿出去在浏览器中打开,里面是“丢失”的两个标签,这时候就发现其实并不是丢失了,而是包含在了<wsdl:import>标签内 为什么会包含在了<wsdl:import>标签内?仔细查看生成的wsdl,发现<wsdl:definitions>标签内的targetNamespace属性和<wsdl:import>中namespace属性的值不同,这就是原因所在,发布服务时,接口类和服务实现类的@Webservice注解中没有指定targetNamespace为一个名称或者没有指定时(cxf发布服务时会默认将类和接口的包路径反转,然后作为targetNamespace的值),就会导致上述现象,最终解决方案: 1,将接口类和实现类放在同一个包下,问题即可解决 2,将接口类和实现类中的注解中加入命名空间属性配置,@WebService(targetNamespace="XXXXX"),两个配置值保持一致即可 实现类: package org.frameworkset.web.ws; import javax.jws.WebService; /** * <p>Title: WSServiceImpl.java</p> * <p>Description: </p> * <p>bboss workgroup</p> * <p>Copyright (c) 2008</p> * @Date 2011-4-24 * @author biaoping.yin * @version 1.0 */ @WebService(targetNamespace="org.frameworkset.web.ws") public class WSServiceImpl implements WSService{ public String sayHello(String duoduo) { if(duoduo == null) return ""; else return duoduo; } } 接口定义: package org.frameworkset.web.ws; import javax.jws.WebService; /** * <p>Title: WSService.java</p> * <p>Description: </p> * <p>bboss workgroup</p> * <p>Copyright (c) 2008</p> * @Date 2011-4-24 * @author biaoping.yin * @version 1.0 */ @WebService(targetNamespace="org.frameworkset.web.ws") public interface WSService { public String sayHello(String duoduo) ; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 添加占位符以在angular2中选择标记
- 单元测试 – 如何使用Angular 2中的日期管道测试元素的渲染
- 腾讯1300场NBA直播背后的技术力量
- Stackless Scala With Free Monads,完整的例子
- 简单的ng-content无法在角度2中工作
- angular – ViewContainerRef.clear()是否从内存中删除组件
- scala – 编译期间未捕获的异常:java.lang.AssertionError
- angular4 上传本地图片,将拿到的files转化为url地址,提示
- bash – 如何从包含搜索词完全匹配的CSV文件中删除所有行?
- Shell脚本中如何将所有命令执行的结果定位到日志中