Axis2 - Webservice-Client - Transfer-Encoding wird ignoriert

  • Themenstarter Themenstarter Marc Ther
  • Beginndatum Beginndatum
M

Marc Ther

Hallo Zusammen,

ich hoffe Ihr könnte mir bei folgendem Problem helfen.

Ich habe einer WebApp einen AXIS2-Webservice Client integriert, welcher einen Webservice synchron anfragt.
Steht das Zielsystem(Simulator) im selben Netz (ohne Zugriff über Proxy) ist der WS-Client voll funktional.
Da das richtige Zielsystem befindet sicht jedoch auf einem Appserver welcher nur über einen Proxy erreichbar ist.
Bei dem Proxy handelt es sich um einen Squid-Proxy (glaube 2.5), welche nicht alle Protokolle und Transfer-Encodings verarbeiten kann.
Im speziellen Fall unterstützt der Proxy kein chunked-Transfer-Encoding.
Soweit so gut.... schlecht.

Ich habe daher in der Axis2.xml /webapp/ws-consumer/WEB-INF/conf/axis2.xml die Konfiguration des Transfer-Encoding angepasst und das Transfer-Encoding chunked deaktiviert/auskommentiert.
Meines Erachtens sollte nun die Content-Length in den HTTP-Header geschrieben werden.

Leider igoriert der Tomcat diese Einstellung völlig und erstellt im work-Verzeichnis der Webapp eine eigene Axis2.xml-Datei mit den Standard-Parametern. HTTP/1.1 und chunked.
Auch ein manuelles Editieren dieser Parameter und Neustart des Tomcat führt zu keinem Laden der geänderten Properties. Die Kommunikation erfolgt weiterhin per HTTP1.1 und chunked.

Axis2-Version: 1.5.1

Umgebung:
2010-06-27 12:09:20 StandardContext[/editor]Info: cap.generator.main: webcontainer is Apache Tomcat/5.0.28 (Servlet 2.4, JSP )
2010-06-27 12:09:20 StandardContext[/editor]Info: cap.generator.main: jvm is 1.5.0_17-b04 (Java HotSpot(TM) Client VM mixed mode, Sun Microsystems Inc.)
2010-06-27 12:09:20 StandardContext[/editor]Info: cap.generator.main: os is Windows XP (5.1 x86)

Kann mir jemand erklären warum dies so ist?
Wie kann ich das Problem lösen, bzw. wo könnte die Ursache liegen?

Vielen Dank und ein sonniges Wochenende

Marc
 
Ich suche primr eine konfigurative Lösung über bspw. die axis2.xml.
Eine programmatische Lösung erfordert jeweils die Compilierung der Anwendung was ich eigentlich verhindern wollte.
 
Hallo,

ist das hier dein Problem?
http://stackoverflow.com/questions/271665/problem-turning-http-chunking-off-in-axis2

Welchen TransportSender verwendest du denn? CommonsHTTPTransportSender ?

XML:
<transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
    <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
    <!-- <parameter name="Transfer-Encoding" locked="false">chunked</parameter> -->
</transportSender>
?

Du könntest auch Versuchen den Webservice über HTTP 1.0 zu betreiben, da ist chunked-encoding nicht möglich...

Gruß Tom
 
Zuletzt bearbeitet von einem Moderator:
Genau das ist das Problem.
Egal welchen Transport-Sender ich verwende, die gesamte Konfig wird nicht geladen.
Ich verwende den CommonsHttpServer.
 
Hallo,

ich habe jetzt die Ursache gefunden.
In der Axis2.xml gibt es ein Codierungsproblem, welches dazu führt, dass die XML-Datei nicht valide ist.

Betroffene Zeile 53
<!---When creating URL Based configurator with URL “file://†-->

In diesem Fall sind die Anführungstriche im Kommentar falsch kodiert.
Nach Korrektur und entfernen der ""- wird nun auch die XML-Datei korrekt geladen.

Grüße

Marc
 
Zurück