我已经部署了一个JBoss 7.1.1托pipe的JAX-WS Web服务。 webservice被反向代理join。 要从公网访问服务,必须通过https协议来完成,但是反向代理和JBoss之间的通信在http中。 因此,wsdl文件中的主机是http <soap:address location="http://example.com/WS"/> ,它必须是<soap:address location="https://example.com/WS"/> 。
JBoss的configuration如下:
modify-wsdl-addres = true wsdl-host = jbossws.undefined.host
以下是webservicesconfiguration的参考: https : //docs.jboss.org/author/display/AS71/Web+services+configuration
但我可以find在哪里强制协议是在肥皂地址https。
web和webservices子系统configuration一起工作以提供端点URL(以及xs:import语句的URL)。
在webservicesconfiguration中添加以下行
<wsdl-port>443</wsdl-port>
在webconfiguration中,将http连接器的scheme从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>