Wir haben eine einfache Kamelroute "Von-> auf":Http-Header Content-Length in Kamel cxf Client-Anfrage
<from uri="cxf:bean:testServiceProvider?loggingFeatureEnabled=true" />
<to uri="cxf:bean:testServiceClient?loggingFeatureEnabled=true" />
Diese Route wirkt wie ein Router oder Proxy für eine dritte Web-Service-Partei:
- Clients verwenden es als Endpunkt.
- Fügt der Soap-Nachricht WSS-Header hinzu.
- Route Anforderungen an echte Endpunkt.
Dienst und Client in diesem Proxy werden mit cxf
Beans erstellt.
Der Webdienst des Endpunkts scheint Content-Length
HTTP-Header zu erfordern, aber cxf
Anforderungen an Endpunkt enthält diesen Header standardmäßig nicht. Alle von diesem Proxy getan Anfragen erhalten die gleiche Antwort:
HTTP response '411: Length required' when communicating with https://host:port/testService
Wir haben versucht, diesen Titel mit einem OutInterceptor hinzuzufügen, und fügte hinzu, es zu PROTOCOL_HEADERS:
Map<String, List> headers = (Map<String, List>) message.get(Message.PROTOCOL_HEADERS);
headers.put("Content-Length", Collections.singletonList(String.valueOf(messageLength)));
Zwei Fragen:
Wie kenne den Wert messageLength
? Gibt es einen einfacheren Weg, dies zu tun?
Danke!
Schön! Endlich arbeiten. Danke @jarey – jakinho