2012-12-19 73 views
7

我有一個Apache2 HTTP服務器此服務器是可用於外部網絡。對於我的web服務,我在內部網絡中使用了Jboss 4。我使用DMZ在Apache上配置了VirtualHosts,因此我可以通過http://externalserver/services/SomeService?wsdl訪問外部主機的服務,並且當請求與/ services/*一起排列時,我將ProxyPass的請求重定向到http://internalserver/services/SomeService?wsdl軸更換肥皂:地址

這在Intranet上工作,但是當我嘗試從外部主機使用我的web服務時,我的wsdl引用了內部主機。我有這樣的事情:

<service name="SomeServiceService"> 
    <port binding="tns:SomeServiceBinding" name="SomeServicePort"> 
     <soap:address location="http://internalserver/services/SomeService"/> 
    </port> 
</service> 

我需要更改我生成的wsdl中的位置屬性,我該怎麼做?

在此先感謝。

編輯:

我可以改變主機和端口我編輯的jboss-beans.xml的,現在我已經是這樣的:

<property name="webServiceHost">${jboss.bind.address}</property> 
<property name="modifySOAPAddress">true</property> 
<property name="webServiceSecurePort">8443</property> 
<property name="webServicePort">8080</property> 

但這不改變協議,我可以打電話http://myapp/Service?wsdlhttps://myapp/Service?wsdl但在這兩個地址是http,我需要將其更改爲https。

回答

1

根據this post可以設置soap:address喜歡的東西"https://REPLACE-ME作爲變通,或執行CONFIDENTIAL傳輸保證(這可能會破壞您的Intranet服務,除非你還它一個HTTPS啓用服務器部署或手動更換soap:address)。