Axis Change soap:地址

Luc*_*cia 7 java axis

我有一个Apache2 HTTP Server,这个服务器可用于外部网络.对于我的网络服务,我在内部网络中有一个Jboss 4.我在Apache上使用DMZ配置了VirtualHosts,因此我可以通过以下方式访问来自外部主机的服务http://externalserver/services/SomeService?wsdl,当使用/ services/*进行请求时,我将请求重定向到http://internalserver/services/SomeService?wsdlProxyPass.

这在Intranet上工作,但是当我尝试从外部主机使用我的web服务时,我的wsdl引用内部主机.我有这样的事情:

<service name="SomeServiceService">
    <port binding="tns:SomeServiceBinding" name="SomeServicePort">
         <soap:address location="http://internalserver/services/SomeService"/>
    </port>
</service>
Run Code Online (Sandbox Code Playgroud)

我需要在生成的wsdl中更改location属性,我该怎么办?

提前致谢.

编辑:

我可以更改主机和端口我编辑了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>
Run Code Online (Sandbox Code Playgroud)

但是这不会改变协议,我可以调用http://myapp/Service?wsdl或者https://myapp/Service?wsdl在两个地址中都是http,我需要将其更改为https.

Ant*_*oly 1

根据这篇文章,您可以设置soap:address类似的"https://REPLACE-ME解决方法,或强制执行CONFIDENTIAL传输保证(这可能会破坏您的 Intranet 服务,除非您也将其部署在支持 https 的服务器中或soap:address手动替换)。