Howto setup-JAX-WS-client ISO-8859-1 anstatt UTF-8?

Möchte ich bei der Konfiguration meines JAX-WS-client zum senden von Nachrichten in ISO-8859-1. Derzeit UTF-8 verwendet wird.

Hier ist, was der Kunde versucht zu tun:

Map<String, Object> reqContext = ((BindingProvider) service).getRequestContext();
Map httpHeaders = new HashMap();
httpHeaders.put("Content-type",Collections.singletonList("text/xml;charset=ISO-8859-1"));
reqContext.put(MessageContext.HTTP_REQUEST_HEADERS, httpHeaders);

Aber diese Einstellung wird ignoriert, und tcpmon zeigt, dass das folgende von dem server empfangen:

POST /service/helloWorld?WSDL HTTP/1.1
Content-type: text/xml;charset="utf-8"
Soapaction: "helloWorld"
Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
User-Agent: Oracle JAX-WS 2.1.5
Host: 1.1.1.1:8001
Connection: keep-alive
Content-Length: 4135

<?xml version='1.0' encoding='UTF-8'?>
<S:Envelopexmlns:S="http://schemas.xmlsoap.org/soap/envelope/">...  

So, wird die Einstellung überschrieben und wird UTF-8 verwendet, sowohl im HTTP-header und in der XML-Nachricht. Der service ist definiert durch die WSDL, die in UTF-8 codiert.

Q: Sollte ich definieren Sie die service-WSDL-codiert in ISO-8899-1 und dann neu erstellen, den client? Oder ist es so, dass ich einfach nicht die Einstellung der HTTP-Header korrekt?

  • Welche JDK-Verkäufer/ - version hat der client? Ich kann mich an einen bug in einem ehemaligen JAX-WS-Implementierung (1.6.0.1 oder so)...
  • Der AUFTRAGGEBER ist die Ausführung von Java 1.6.0_29, die JAX-WS-Bibliothek verwendet, ist " Weblogic "Oracle JAX-WS 2.1.5". Ich habe gerade getestet JAXWS, dass kommt mit JDK 6, der "JAX-WS RI 2.1.6", und das Ergebnis ist das gleiche
InformationsquelleAutor Aleš | 2012-11-04
Schreibe einen Kommentar