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.