Implementé un servicio web JAX-WS alojado en JBoss 7.1.1. Se accede al servicio web mediante un proxy inverso. Para acceder al servicio desde la internet pública se tiene que hacer mediante el protocolo https, pero la comunicación entre el proxy inverso y el JBoss es en http. Entonces, el host presente en el archivo wsdl es http <soap:address location="http://example.com/WS"/>
y tiene que ser <soap:address location="https://example.com/WS"/>
.
La configuración de JBoss es la siguiente:
modify-wsdl-addres = true
wsdl-host = jbossws.undefined.host
Aquí está la referencia para la configuración de servicios web: https://docs.jboss.org/author/display/AS71/Web+services+configuration
Pero puedo encontrar dónde forzar que el protocolo sea https en la dirección de jabón.
Respuesta1
Las configuraciones del subsistema web
y webservices
funcionan juntas para proporcionar la URL del punto final (y también las URL para declaraciones xs:import).
En la webservices
configuración agregue la siguiente línea
<wsdl-port>443</wsdl-port>
En la web
configuración cambie el esquema del conector http de http
a https
y agregueproxy-port="443"
Entonces se verá así:
<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>