Publicado el Dejar un comentario

Configurando servicios web JAX-WS a través de un proxy Apache 2.X

Había configurado servicios web tras un Proxy de Apache Web Server. Los servicios web estaban en un servidor de aplicaciones tomcat en el puerto 8080. El servidor Apache redireccionaba las peticiones a dicho servidor. El archivo WSDL lo recibía sin problemas. Sin embargo los clientes no podían obtener la descripción de los servicios ya que en la respuesta WSDL  el parámetro schemaLocation apuntaba al puerto 8080:

 

… schemaLocation=”http://servidor_apache:8080/web_services/servicio_web?xsd=1″ ..

Para solucionar esto es necesario agregar la directiva ProxyPreserveHost y ponerla en On. Así la respuesta del WSDL me regresó la dirección correcta:

… schemaLocation=”http://servidor_apache:80/web_services/servicio_web?xsd=1″ ..

Las directivas dentro del archivo http.conf quedaron así:

ProxyRequests off

ProxyPass /web_services/ http://servidor_de_servicios_web:8080/web_services

ProxyPassReverse /web_services/ http://servidor_de_servicios_web:8080/web_services

ProxyPreserveHost On

Espero que les sirva.