`

cxf解决多网卡的ip获取不正确的问题

阅读更多

        今天帮助网友解决一个问题,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>

 

 

分享到:
评论
1 楼 zxjlwt 2015-03-03  
请问,如何客户端连接webservice服务的话,客户端如何能获取本地的连接地址呢?谢谢!

http://surenpi.com

相关推荐

    cxf3.2.0编码GBK的不可映射字符问题

    本篇将深入探讨"cxf3.2.0编码GBK的不可映射字符问题",并提供解决方案。 在Java中,默认的字符编码是UTF-8,而GBK是一个中文常用的编码格式,它包含了更多的中文字符。当XML或者HTTP请求的数据采用GBK编码,而CXF...

    java cxf webservice接口解决跨域问题

    Java CXF Webservice接口在处理Web服务时,可能会遇到跨域问题,这通常是由于浏览器的安全策略限制了不同源之间的通信。解决这个问题的关键在于理解和应用CORS(Cross-Origin Resource Sharing)机制。CORS允许...

    cxf创建客户端出现GBK编码问题解决的jar

    为了解决这个问题,我们需要理解并正确配置CXF的字符编码策略。以下是一些关键的知识点: 1. **设置HTTP头**:可以设置HTTP头中的`Content-Type`字段,指定正确的字符编码,如`application/xml;charset=UTF-8`,...

    cxf使用中编码问题

    "cxf使用中编码问题"这个主题聚焦在如何在CXF环境中解决与GBK等特定编码相关的困扰。 首先,我们需要理解编码的本质。在计算机系统中,字符编码是用来表示文本的一种方式,如ASCII、GBK、UTF-8等。GBK是中国大陆...

    cxf客户端出现GBK编码问题解决jar.rar

    综上所述,解决CXF客户端的GBK编码问题需要对服务端和客户端的配置有深入理解,并且要确保在数据传输的每个环节都正确处理字符编码。通过以上步骤,你应该能够解决大多数由GBK编码引起的乱码问题。在实际应用中,...

    cxf2.7.18编码GBK的不可映射字符问题

    对于提供的压缩包文件“cxf2.7.18编码GBK的不可映射字符问题”,其中可能包含了解决这个问题的具体步骤、配置示例或日志分析。通过查看这些文件,可以更深入地理解问题的细节并找到针对性的解决方案。在处理这类问题...

    websphere下部署CXF项目jar包冲突问题解决方式

    在websphere8.5 下部署含有CXFwebservice的war包无法正常启动,...归根结底原因不是找不到类,而是发布后war下的jar与websphere自身平台下的jar冲突了,要解决此问题就要通过在websphere下建立共享库来根除,可参考附件

    cxf创建出现GBK编码问题解决的jar

    cxf创建客户端出现GBK编码问题解决的jar 评分: cxf在创建客户端出现编码GBK-不可映射字符的编码问题解决的jar

    cxf多数据源配置

    【标题】:“cxf多数据源配置” 在Java企业级应用开发中,有时我们需要处理来自多个数据源的数据,比如不同的数据库、API接口等。CXF(CXF: XFire + Codehaus XStream)是一个开源的Java框架,它主要用于构建和消费...

    CXF-JAXB包的处理问题

    在Java开发中,CXF(Apache CXF)是一个开源的服务框架,它...正确的类加载顺序和兼容的库版本是解决问题的关键。在日常开发中,保持良好的依赖管理习惯,如使用Maven或Gradle等构建工具,可以帮助避免此类问题的发生。

    CXF框架访问远程webService服务之获取快递状态信息

    本教程将深入讲解如何利用CXF框架来访问远程Web Service服务,特别是获取快递状态信息。 首先,我们需要理解CXF的核心概念。CXF是一个开源框架,它提供了SOAP和RESTful两种方式来创建和调用Web Service。在SOAP模式...

    CXF下基于已发布WSDL获取远程服务

    这篇博客“CXF下基于已发布WSDL获取远程服务”探讨了如何利用CXF框架来通过已发布的WSDL(Web Service Description Language)文件来调用远程服务。 WSDL是一种XML格式的规范,它定义了服务的位置、接口以及如何...

    cxf和xfire的jar包冲突解决

    这个问题在标题“cxf和xfire的jar包冲突解决”中得到了明确指出。 Apache CXF是一个全面的服务开发框架,它支持SOAP、RESTful Web服务,以及多种协议和绑定。而XFire是CXF的前身,也是一个强大的Web服务框架,但它...

    CXF 文件记录报文日志,非控制台打印。

    总的来说,通过适当配置日志框架,我们可以将CXF的服务报文日志记录到文件中,这有助于我们在不干扰正常运行的情况下收集和分析日志信息,对于优化服务性能、追踪问题以及满足合规性要求都具有重要意义。

    spring整合cxf全jar包 一个都不能少和一个都不能多

    "spring整合cxf全jar包 一个都不能少和一个都不能多"这个主题表明了在配置Spring和CXF时,正确选择和包含所有必要的JAR文件至关重要,因为缺少任何一个都可能导致项目运行失败或者功能缺失。 首先,让我们深入理解...

    CXF处理不规则SOAP message(转)

    标签中的"源码"意味着解决问题可能需要查看CXF的源代码,理解其内部工作流程,这对于高级调试和定制化处理至关重要。"工具"则暗示可能存在一些辅助工具或插件,如XML编辑器、SOAP消息验证工具,可以帮助开发者更好地...

    cxf 3.1.1 jar包

    在这种情况下,寻找可靠的第三方资源获取CXF的jar包是必要的。CXF的jar包包含了运行和开发基于CXF的Web服务所需的所有类和库,包括核心服务、WS-*协议实现、数据绑定、以及HTTP传输等组件。 在压缩包“cxf3.1.1”中...

Global site tag (gtag.js) - Google Analytics