7

我有一个 Apache2 HTTP 服务器,该服务器可用于外部网络。对于我的网络服务,我在内部网络中有一个 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>

我需要更改生成的 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?wsdl或者https://myapp/Service?wsdl但在两个地址中都是http,我需要将其更改为https。

4

1 回答 1

1

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

于 2012-12-26T18:34:39.040 回答