CXF发布服务,WebService缺少<wsdl:types/><wsdl:message/>标签
2017-09-21 10:59
537 查看
发布CXF时遇到一个问题,发布的服务,wsdl文件中没有<wsdl:types/><wsdl:message/>标签,wsdl文件如下:
仔细查找原因:实现类中标明了命名空间@WebService(targetNamespace=“com.oristartech.sms.core.ws.server"),接口类未标明命名空间(@WebService())
解决方案:将接口类和实现类标注命名空间,两者保持一致即可。
接口类代码:
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="com.oristartech.sms.core.ws.server" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:ns1="http://server.ws.core.sms.oristartech.com/" name="dispatchService" targetNamespace="com.oristartech.sms.core.ws.server"> <wsdl:import location="http://localhost:8080/sms/webservice/isSwitch?wsdl=DispatchService.wsdl" namespace="http://server.ws.core.sms.oristartech.com/"> </wsdl:import> <wsdl:binding name="dispatchServiceSoapBinding" type="ns1:DispatchService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="isSwitchHall"> <soap:operation soapAction="" style="document"/> <wsdl:input name="isSwitchHall"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="isSwitchHallResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="dispatchService"> <wsdl:port binding="tns:dispatchServiceSoapBinding" name="DispatchServiceImplPort"> <soap:address location="http://localhost:8080/sms/webservice/isSwitch"/> </wsdl:port> </wsdl:service> </wsdl:definitions>对比别的wsdl文件,发现多了wsdl:import,将其地址复制到浏览器地址栏,发现里面是丢失的两个标签,这才发现不是丢失,而是包含在wsdl:import标签里面。
仔细查找原因:实现类中标明了命名空间@WebService(targetNamespace=“com.oristartech.sms.core.ws.server"),接口类未标明命名空间(@WebService())
解决方案:将接口类和实现类标注命名空间,两者保持一致即可。
接口类代码:
@WebService(targetNamespace = "com.oristartech.sms.core.ws.server") public interface DispatchService { public String isSwitchHall(@WebParam(name="isSwitch")String isSwitch); }实现类代码:
@WebService(endpointInterface = "com.oristartech.sms.core.ws.server.DispatchService", targetNamespace = "com.oristartech.sms.core.ws.server", serviceName="dispatchService") public class DispatchServiceImpl implements DispatchService { public String isSwitchHall(@WebParam(name="isSwitch")String isSwitch) { System.out.println("===="+isSwitch); return "111"; } }
相关文章推荐
- 解决cxf+spring发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题
- 解决cxf+spring发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题
- 解决cxf+bboss发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题
- 解决cxf+spring发布的webservice,types,portType和message以import方式导入
- spring,cxf,restful发布webservice传递List,Map,List<Map>
- 在 Spring中集成CXF--->演示webservice服务的发布及调用
- <s:actionmessage/>标签显示Action信息
- CXF实现webservice 解决list<map>类型转换
- spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务
- cxfspring boot整合cxf发布webservice服务和cxf客户端调用
- Spring+cxf发布webservice服务--注解方式
- cxf发布webservice 服务
- 用java语言,不用任何框架发布一个基于WSDL的WebService服务
- cxf+spring发布webservice服务(服务器端)
- 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一) ASP.NET WebApi技术从入门到实战演练 C#面向服务WebService从入门到精通 DataTable与List<T>相互转换
- 用cxf在web工程中添加webService接口,发布webService服务
- 构建基于CXF的WebService服务(2)-- 利用CXF提供的wsdl2java工具创建客户端
- Maven+SpringMVC+CXF整合实现webservice服务的发布与调用
- cxf+spring发布webservice服务(客户端)
- webservice--CXF发布REST的服务