今天帮助网友解决一个问题,cxf对外发布webservice的时候,由于服务器是多网卡环境,从wsdl返回的ip是一个内外地址,解析出错,所以后来在网上查了下,需要设置publishedEndpointUrl设置域名即可。
用ip的时候wsdl如下:
<wsdl:definitions xmlns:ns1="http://ws.api.wenbo.taagoo.com/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.ws.api.wenbo.taagoo.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="VirtualMuseumApiWebServiceImplService" targetNamespace="http://impl.ws.api.wenbo.taagoo.com/"> <wsdl:import location="http://172.16.0.5/wenbo-api/ws/virtualMuseumService?wsdl=VirtualMuseumApiWebService.wsdl" namespace="http://ws.api.wenbo.taagoo.com/"></wsdl:import> <wsdl:binding name="VirtualMuseumApiWebServiceImplServiceSoapBinding" type="ns1:VirtualMuseumApiWebService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getCompanyDetail"> <soap:operation soapAction="" style="document"/> <wsdl:input name="getCompanyDetail"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="getCompanyDetailResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getMuseumList"> <soap:operation soapAction="" style="document"/> <wsdl:input name="getMuseumList"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="getMuseumListResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getComanyList"> <soap:operation soapAction="" style="document"/> <wsdl:input name="getComanyList"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="getComanyListResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="VirtualMuseumApiWebServiceImplService"> <wsdl:port binding="tns:VirtualMuseumApiWebServiceImplServiceSoapBinding" name="VirtualMuseumApiWebServiceImplPort"> <soap:address location="http://172.16.0.5/wenbo-api/ws/virtualMuseumService"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
如果在spring里面设置如下配置,即可:
<jaxws:endpoint id="VirtualMuseumApiWebServiceImplEndpoint" implementor="#virtualMuseumApiWebServiceImpl" address="/virtualMuseumService" > <jaxws:properties> <entry key="publishedEndpointUrl" value="http://www.xxxx.com/wenbo-api/ws/virtualMuseumService" /> </jaxws:properties> <jaxws:inInterceptors> <!-- <ref bean="virtualMuseumHeaderInterceptor" /> --> <ref bean="logIn"/> </jaxws:inInterceptors> <jaxws:outInterceptors> <ref bean="logOut"/> </jaxws:outInterceptors> </jaxws:endpoint>
最终返回的的wsdl是好的,如下:
wsdl:definitions xmlns:ns1="http://ws.api.wenbo.taagoo.com/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.ws.api.wenbo.taagoo.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="VirtualMuseumApiWebServiceImplService" targetNamespace="http://impl.ws.api.wenbo.taagoo.com/"> <wsdl:import location="http://www.xxx.com/wenbo-api/ws/virtualMuseumService?wsdl=VirtualMuseumApiWebService.wsdl" namespace="http://ws.api.wenbo.taagoo.com/"></wsdl:import> <wsdl:binding name="VirtualMuseumApiWebServiceImplServiceSoapBinding" type="ns1:VirtualMuseumApiWebService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getCompanyDetail"> <soap:operation soapAction="" style="document"/> <wsdl:input name="getCompanyDetail"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="getCompanyDetailResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getMuseumList"> <soap:operation soapAction="" style="document"/> <wsdl:input name="getMuseumList"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="getMuseumListResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getComanyList"> <soap:operation soapAction="" style="document"/> <wsdl:input name="getComanyList"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="getComanyListResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="VirtualMuseumApiWebServiceImplService"> <wsdl:port binding="tns:VirtualMuseumApiWebServiceImplServiceSoapBinding" name="VirtualMuseumApiWebServiceImplPort"> <soap:address location="http://www.xxx.com/wenbo-api/ws/virtualMuseumService"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
相关推荐
cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar
cxf客户端出现GBK编码问题解决cxf客户端出现GBK编码问题解决jar.rar
cxf3.2.0出现编码GBK的不可映射字符问题,这个提供解决方法及直接替换的jar包。
在websphere8.5 下部署含有CXFwebservice的war包无法正常启动,...归根结底原因不是找不到类,而是发布后war下的jar与websphere自身平台下的jar冲突了,要解决此问题就要通过在websphere下建立共享库来根除,可参考附件
cxf创建客户端出现GBK编码问题解决的jar 评分: cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar
解决cxf2.7.18出现编码GBK的不可映射字符问题,从服务端或者客户端层面上根本解决。
因与cxf包xmlschema-core-*.jar 冲突 故重新打包 XmlSchema-1.1.jar 源码修改原类径的方法来重新打包避免冲突 源码放在javas.rar文件夹中 org.codehaus.xfire.wsdl11.parser.SchemaInfo org.codehaus.xfire....
cxf使用中编码问题,有关于gbk等的编码问题在cxf中的解决方法
CXF框架访问远程webService服务之获取快递状态信息,详细见代码注释
处理cxf版本和jaxb包中冲突问题,解决webservice中遇到的版本问题
因与cxf包xmlschema-core-*.jar 冲突 故重新打包 XmlSchema-1.1.jar 源码修改原类径的方法来重新打包避免冲突 源码放在javas.rar文件夹中 org.codehaus.xfire.wsdl11.parser.SchemaInfo org.codehaus.xfire....
webService调取IP所在地,以及获得客户端真实IP
通过cxf将多个webServices整合到一起方便管理与维护
spring整合cxf全jar包 一个都不能少和一个都不能多 网上那些三个jar包的不可信
java cxf webservice接口解决跨域问题,cors-filter-1.7.jar、java-property-utils-1.9.jar,以及web.xml文件配置
CXF源码:CXF_Spring源码 CXF源码:CXF_Spring源码