Implantei um serviço web JAX-WS hospedado em um JBoss 7.1.1. O webservice é acessado por um proxy reverso. Para acessar o serviço pela internet pública tem que ser feito pelo protocolo https, mas a comunicação entre o proxy reverso e o JBoss é em http. Portanto, o host presente no arquivo wsdl é http <soap:address location="http://example.com/WS"/>
e tem que ser <soap:address location="https://example.com/WS"/>
.
A configuração do JBoss é a seguinte:
modify-wsdl-addres = true
wsdl-host = jbossws.undefined.host
Aqui está a referência para a configuração dos webservices: https://docs.jboss.org/author/display/AS71/Web+services+configuration
Mas posso descobrir onde forçar o protocolo a ser https no endereço do sabonete.
Responder1
As configurações web
do webservices
subsistema e funcionam juntas para fornecer a URL do terminal (e também URLs para instruções xs:import).
Na webservices
configuração adicione a seguinte linha
<wsdl-port>443</wsdl-port>
Na web
configuração altere o esquema do conector http de http
para https
e adicioneproxy-port="443"
Então ficará assim:
<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>