我创建了一个基于SOAP的Web服务并部署在我的本地服务器(Tomcat)上。
现在我将其中一个代理服务器(托管在互联网上)指向我的本地服务器。
当我从代理URL访问WSDL时,将使用本地服务器URL来进行schemalocation。
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss- wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" name="MovieServiceImplService">
<types>
<xsd:schema>
<xsd:import namespace="http://movies.media.com/" schemaLocation="***http://123.13.33.44:8888/ws-test/Movietest?xsd=1***"/>
</xsd:schema>
</types>
<message name="searchByTitle">
<part name="parameters" element="tns:searchByTitle"/>
</message>
<message name="searchByTitleResponse">
<part name="parameters" element="tns:searchByTitleResponse"/>
</message>
....
My proxy url is https://abcd:8990. I want the schemalocation to be https://abcd:8990/ws-test/Movietest?xsd=1
有人可以告诉我可以采取哪些措施来解决这个问题。
答案 0 :(得分:0)
感谢Keerthi Ramanathan。
You should make use of ProxyPreserveHost directive of Apache mod_proxy module
这对我有用。但还有一个问题。我的apache服务器是https,并且schemalocation url正在成为http url。我无法理解原因。你知道为此做了什么吗?
目前,我已删除了ssl。