Tengo un problema con un encabezado HTTP Response Content-Type
incorrecto al acceder a un servicio web Axis2 alojado en Tomcat detrás de Apache mediante un conector AJP/1.3.Cómo conservar el encabezado Content-Type de una respuesta HTTP Tomcat enviada a través de un conector AJP a Apache usando mod_proxy
puedo acceder al servicio web sin problemas en el navegador a través de su interfaz REST y puedo ver los resultados, pero de alguna manera Apache está cambiando la cabecera de respuesta Content-Type
enviado por Tomcat text/xml
-text/plain
y me impide consumir el servicio Web a través de SOAP en NetBeans, debido a una excepción Unsupported Content-Type: text/plain Supported ones are: [text/xml]
.
Aquí está la sección correspondiente de la configuración de Apache mi vhosts:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName myserver.example
ServerAlias other.myserver.example
ProxyPreserveHost On
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
<Location /axis2/services>
ProxyPass ajp://localhost:8009/axis2/services
ProxyPassReverse ajp://localhost:8009/axis2/services
</Location>
</VirtualHost>
y la sección pertinente de mi Tomcat server.xml:
<Connector port="8009" protocol="AJP/1.3" redirectPort="9443" />
<Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
SSLCertificateFile="path/to/bundle"
SSLCertificateKeyFile="path/to/key"
SSLPassword="S3cr3t"
proxyName="myserver.example" proxyPort="443" />
Si accedo a la WS directamente en Tomcat mediante el valor por defecto conector en el puerto 8080 obtengo el content-type
correcto, pero si accedo a él a través de Apache obtendré text/plain
, por lo que definitivamente es un problema con el proxy.
¿Cómo puedo resolver este problema?
EDIT: Tengo que funcione mediante el conector HTTP Tomcat para el proxy, en lugar de la AJP uno, pero yo preferiría usar mod_ajp si encuentro una solución de trabajo.
acabo de cambiar las líneas
ProxyPass ajp://localhost:8009/axis2/services
ProxyPassReverse ajp://localhost:8009/axis2/services
a
ProxyPass http://localhost:8080/axis2/services
ProxyPassReverse http://localhost:8080/axis2/services
http://markmail.org/message/btwcnbl2i7ftwj4n#query:apache%20ajp%20changes%20Content -Tipo% 2Bágina + página: 1 + medio: btwcnbl2i7ftwj4n + estado: los resultados parecen estar relacionados con su problema – JoseK
Sí, es el mismo problema y ya encontré algunos archivos de correo como el de 2007 antes de publicar la pregunta aquí, pero todavía puedo encuentra una solución a este problema – tsbnunes