Erhaltung des Content-Type-header von einem Tomcat-HTTP-Antwort gesendet durch einen AJP-connector auf Apache mit mod_proxy

Ich habe ein problem mit einem falschen HTTP-Response Content-Type header beim Zugriff auf eine Axis2 web service gehostet in Tomcat hinter Apache durch " AJP/1.3-Anschluss.

Kann ich den Zugriff auf den web service, ohne Probleme im browser durch seine RESTful-Schnittstelle und ich kann die Ergebnisse sehen, aber irgendwie Apache ist die änderung der Reaktion Content-Type header gesendet von Tomcat aus text/xml zu text/plain und es hindert mich daran, den Verzehr des web-service über SOAP in NetBeans, weil der eine Unsupported Content-Type: text/plain Supported ones are: [text/xml] Ausnahme.

Hier ist der relevante Teil meiner Apache-vhosts-Konfiguration:

<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>

Und den entsprechenden Abschnitt meiner 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" />

Wenn ich auf die WS direkt in Tomcat mittels der Standard-connector auf port 8080 bekomme ich die richtige content-type aber wenn ich auf Sie durch Apache dann bekomme ich text/plain, also ist es definitiv ein problem mit dem proxy.

Wie kann ich dieses problem lösen?

EDIT: ich habe es zu arbeiten, indem Sie die Tomcat HTTP-connector für das proxying, statt der AJP, aber ich würde es vorziehen, zu verwenden mod_ajp, wenn ich eine funktionierende Lösung.

Ich habe gerade den

ProxyPass ajp://localhost:8009/axis2/services
ProxyPassReverse ajp://localhost:8009/axis2/services

Linien zu

ProxyPass http://localhost:8080/axis2/services
ProxyPassReverse http://localhost:8080/axis2/services
  • markmail.org/message/... scheint sich auf Ihr Problem beziehen
  • Ja, es ist das gleiche Problem und ich fand bereits einige E-mail-Archive, so wie die von 2007, bevor die Frage hier, aber ich kann immer noch nicht finden, eine Lösung für dieses problem.
InformationsquelleAutor tsbnunes | 2010-08-03
Schreibe einen Kommentar