我已经部署了托管在 JBoss 7.1.1 中的 JAX-WS Web 服务。Web 服务由反向代理访问。要从公共互联网访问服务,必须通过 https 协议进行,但反向代理和 JBoss 之间的通信是 http。因此,wsdl 文件中存在的主机是 http,<soap:address location="http://example.com/WS"/>
并且必须是<soap:address location="https://example.com/WS"/>
。
JBoss配置如下:
modify-wsdl-addres = true
wsdl-host = jbossws.undefined.host
以下是webservices配置的参考: https://docs.jboss.org/author/display/AS71/Web+services+configuration
但是我可以在 soap 地址中找到强制协议为 https 的地方。
答案1
web
和子系统配置协同webservices
工作以提供端点 URL(以及 xs:import 语句的 URL)。
在webservices
配置中添加以下行
<wsdl-port>443</wsdl-port>
在web
配置中将 http 连接器的方案从 更改为http
并https
添加proxy-port="443"
因此它看起来会像这样:
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="https" socket-binding="http"
secure="true" proxy-port="443"/>
...
</subsystem>
<subsystem xmlns="urn:jboss:domain:webservices:1.2">
<modify-wsdl-address>true</modify-wsdl-address>
<wsdl-host>jbossws.undefined.host</wsdl-host>
<wsdl-port>443</wsdl-port>
...
</subsystem>