今天帮助网友解决一个问题,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>
相关推荐
本篇将深入探讨"cxf3.2.0编码GBK的不可映射字符问题",并提供解决方案。 在Java中,默认的字符编码是UTF-8,而GBK是一个中文常用的编码格式,它包含了更多的中文字符。当XML或者HTTP请求的数据采用GBK编码,而CXF...
Java CXF Webservice接口在处理Web服务时,可能会遇到跨域问题,这通常是由于浏览器的安全策略限制了不同源之间的通信。解决这个问题的关键在于理解和应用CORS(Cross-Origin Resource Sharing)机制。CORS允许...
为了解决这个问题,我们需要理解并正确配置CXF的字符编码策略。以下是一些关键的知识点: 1. **设置HTTP头**:可以设置HTTP头中的`Content-Type`字段,指定正确的字符编码,如`application/xml;charset=UTF-8`,...
"cxf使用中编码问题"这个主题聚焦在如何在CXF环境中解决与GBK等特定编码相关的困扰。 首先,我们需要理解编码的本质。在计算机系统中,字符编码是用来表示文本的一种方式,如ASCII、GBK、UTF-8等。GBK是中国大陆...
综上所述,解决CXF客户端的GBK编码问题需要对服务端和客户端的配置有深入理解,并且要确保在数据传输的每个环节都正确处理字符编码。通过以上步骤,你应该能够解决大多数由GBK编码引起的乱码问题。在实际应用中,...
对于提供的压缩包文件“cxf2.7.18编码GBK的不可映射字符问题”,其中可能包含了解决这个问题的具体步骤、配置示例或日志分析。通过查看这些文件,可以更深入地理解问题的细节并找到针对性的解决方案。在处理这类问题...
在websphere8.5 下部署含有CXFwebservice的war包无法正常启动,...归根结底原因不是找不到类,而是发布后war下的jar与websphere自身平台下的jar冲突了,要解决此问题就要通过在websphere下建立共享库来根除,可参考附件
cxf创建客户端出现GBK编码问题解决的jar 评分: cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar
【标题】:“cxf多数据源配置” 在Java企业级应用开发中,有时我们需要处理来自多个数据源的数据,比如不同的数据库、API接口等。CXF(CXF: XFire + Codehaus XStream)是一个开源的Java框架,它主要用于构建和消费...
在Java开发中,CXF(Apache CXF)是一个开源的服务框架,它...正确的类加载顺序和兼容的库版本是解决问题的关键。在日常开发中,保持良好的依赖管理习惯,如使用Maven或Gradle等构建工具,可以帮助避免此类问题的发生。
这个问题在标题“cxf和xfire的jar包冲突解决”中得到了明确指出。 Apache CXF是一个全面的服务开发框架,它支持SOAP、RESTful Web服务,以及多种协议和绑定。而XFire是CXF的前身,也是一个强大的Web服务框架,但它...
本教程将深入讲解如何利用CXF框架来访问远程Web Service服务,特别是获取快递状态信息。 首先,我们需要理解CXF的核心概念。CXF是一个开源框架,它提供了SOAP和RESTful两种方式来创建和调用Web Service。在SOAP模式...
这篇博客“CXF下基于已发布WSDL获取远程服务”探讨了如何利用CXF框架来通过已发布的WSDL(Web Service Description Language)文件来调用远程服务。 WSDL是一种XML格式的规范,它定义了服务的位置、接口以及如何...
总的来说,通过适当配置日志框架,我们可以将CXF的服务报文日志记录到文件中,这有助于我们在不干扰正常运行的情况下收集和分析日志信息,对于优化服务性能、追踪问题以及满足合规性要求都具有重要意义。
"spring整合cxf全jar包 一个都不能少和一个都不能多"这个主题表明了在配置Spring和CXF时,正确选择和包含所有必要的JAR文件至关重要,因为缺少任何一个都可能导致项目运行失败或者功能缺失。 首先,让我们深入理解...
标签中的"源码"意味着解决问题可能需要查看CXF的源代码,理解其内部工作流程,这对于高级调试和定制化处理至关重要。"工具"则暗示可能存在一些辅助工具或插件,如XML编辑器、SOAP消息验证工具,可以帮助开发者更好地...
在这种情况下,寻找可靠的第三方资源获取CXF的jar包是必要的。CXF的jar包包含了运行和开发基于CXF的Web服务所需的所有类和库,包括核心服务、WS-*协议实现、数据绑定、以及HTTP传输等组件。 在压缩包“cxf3.1.1”中...