2012-07-02 5 views
15

Ich habe vor kurzem begonnen, SoapUI 4.5.1 zu verwenden, und ich bin immer noch nicht mit allen Einstellungen vertraut. Ich habe ein paar Web-Anfragen eingerichtet und alle außer einem funktionieren einwandfrei. Ich versuche, Inhalte vom Typ application/xml zu senden, aber ich bin immer:Inhalt Länge bereits vorhanden Fehler SoapUI 4.5.1

org.apache.http.client.ClientProtocolException verursacht durch org.apache.http.ProtocolException: Content-Length-Header bereits vorhanden ist.

Die gleiche Anfrage funktionierte immer gut für mich in 4.5.0. Der Inhalt der Anfrage lautet etwa so:

POST http://exampleHost.com/exampleRequest HTTP/1.1 
Accept-Encoding: gzip,deflate 
Accept: text/xml 
Content-Type: application/xml 
Content-Length: 456 
Host: exampleHost.com 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 

Gefolgt von der XML.

Ich nehme an, dass Inhalt Länge zweimal gesendet wird, aber ich weiß nicht wo, weil ich es nirgends festgelegt habe. SoapUI zeigt Additional HTTP Headers for this message als 0.

Alle Zeiger wären großartig!

+6

Problem war mit meinen Einstellungen, wie ich dachte! Das Aktivieren des Kontrollkästchens "Vorübergehendes Authentifizieren" in den globalen HTTP-Einstellungen löste das Problem :) – user1088166

+0

Jetzt hat es wieder funktioniert, obwohl ich nichts geändert habe - einmal funktioniert, dann wieder nicht funktioniert, was in aller Welt ist los? – user1088166

+1

(Ich bin in der Lage, dies zu lösen, indem ich den 'Authorization Type' im 'Aut' Tab meiner Soap-Anfrage in 'Preemptive' änderte.) [Http://forum.soapui.org/viewtopic.php?t=14356] –

Antwort

1

Ich stieß auf das gleiche Problem mit einem Authentifizierungs-Entwicklungsserver, der Benutzeranmeldeinformationen anforderte, aber tatsächlich ein leeres oder ein anderes Kennwort akzeptierte. Also ließ ich das Passwort leer, was in soapUI 4.5.0 gut funktionierte, aber wie in 4.5.1 beschrieben fehlschlug. Aber ich habe festgestellt, dass das Problem einfach durch Eingabe von Text in das Passwort gelöst wird.

Weiß nicht, ob dies zu Ihrem Fall, aber nur für den Fall, dass es sinnvoll ist.

+0

Danke für die Antwort, aber es gibt Text im Passwort und immer noch das gleiche Problem :( – user1088166

0

Ich konfrontiert das gleiche Problem mit Soap UI pro Version 4.5.1.

Schließlich festgestellt, dass das Problem mit Proxy-Einstellungen war.

Auflösung:

  1. den Zielserver Hinzufügen in Ausschlussliste für Proxy-Einstellungen hat das Problem behoben. Dies ist auch dann der Fall, wenn die Endpunkt-URL ein lokaler Host ist.
  2. Einstellungen -> Proxy-Einstellungen ---> ausschließen
  3. mutliple Server durch Komma getrennte Werte

Forschung/Beobachtung auf meinem System angeben:

  1. Seltsamer die gleiche Testsuite läuft ohne ein Problem auf anderen System innerhalb des gleichen Büros. Muss etwas damit zu tun haben, wie Systeme konfiguriert sind.

  2. Das Abspielen mit Proxy-Einstellungen in Internetoptionen hat keinen Effekt.

  3. Für meine Anfrage wurde Proxy-Authentifizierung benötigt.Aber wenn ich Proxy-Einstellungen aktivieren, bekomme ich Http Client-Protokoll-Ausnahme mit doppelten Inhalt Länge Fehler.
  4. Wir können dies aus dem HTTP-Protokoll finden, sobald die Anfrage gesendet wird ... Aber wir haben keine Option zum Konfigurieren es.
  5. Eine interessante Beobachtung war, dass einer der Content-Länge Header in eingehende Anfrage war und der andere in Outgoing war
17

ich den Fehler entkam zu gehen (in SoapUI 4.5.1) durch das Authentifizieren präventiv Flagge Überprüfung in

Einstellungen -> HTTP-Einstellungen -> Authentifizieren präventiv

+0

+1 für die Problemumgehung. –

+0

Das funktionierte für mich auch, danke! –

0

Ein anderer Weg, um diesen Fehler zu verursachen ist, den Web-Service mit dem falschen Passwort (ich wurde falsch falsch gesagt) zu oft anzurufen und Ihr Konto gesperrt zu bekommen.

Sobald das Passwort zurückgesetzt wurde und das Konto entsperrt die "org.apache.http.client.ClientProtocolException verursacht durch org.apache.http.ProtocolException: Content-Length-Header bereits vorhanden" Ausnahme ging weg und der Web-Service Anruf funktionierte wie erwartet.