tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
2371
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    pede20 pede20 ist offline Grünschnabel
    Registriert seit
    Oct 2002
    Ort
    Wittershausen (BW)
    Beiträge
    3
    Hallo Zusammen,

    ich bin derzeit dabeí mich in die Webservice-Entwicklung mit Java einzuarbeiten. Das klappt auch soweit ganz gut. Nur mit der Kodierung von Sonderzeichen habe ich noch diverse Probleme:

    Sende ich mit meinem über WSDL2Java generierten Client in den Übergabeparameter Strings mit Sonderzeichen (ü, ß, ...) an den Webservice, dann kommen diese dort nicht korrekt an. Ich gehe davon aus, dass ich vor dem Absenden des Requests dem Stub noch eine Codierung angeben muss, konnte dafür aber bisher aber keine Lösung finden. Hat irgend jemand vielleicht schon Erfahrungen damit gesammelt?

    Wäre für jeden Tipp dankbar!

    Gruß padde!
    Geändert von pede20 (07.12.07 um 12:56 Uhr)
     

  2. #2
    pede20 pede20 ist offline Grünschnabel
    Registriert seit
    Oct 2002
    Ort
    Wittershausen (BW)
    Beiträge
    3
    Nochmal ne kleine Erweiterung zum Verständnis:

    Ein SOAP-Request sieht in seinem Aufbau ja grundsätzlich wie folgt aus:

    HTTP/1.1 200 OK
    Date: Thu, 05 Sep 2002 08:01:13 GMT
    Server: Apache/1.3.22 (Unix) Enhydra-Director
    SOAPServer: SOAP::Lite/Perl/0.52
    Content-Length: 546
    Connection: close
    Content-Type: text/xml; charset=utf-8

    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Body>
    <namesp1:BabelFishResponse xmlns:namesp1="urn:xmethodsBabelFish">
    <return xsi:type="xsd:string">hello world, good day</return>
    </namesp1:BabelFishResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Nun werden die Sonderzeichen wohl durch die "processing Instruction"
    <?xml version="1.0" encoding="UTF-8"?> falsch dargestellt. Würde das encodung auf ISO-8859-1 gesetzt werden, dann würden die Sonderzeichen vermutlich korrekt übergeben werden.

    Somit habe ich mein Problem eigentlich schon selbst erkannt. Leider habe ich im Client-Code, der durch WSDL2Java erstellt wurde noch keine Möglichkeit gefunden auf genau diese Zeile zuzugreifen. Gibt es da irgendwelche Methoden wie setEncoding() oder setProperty() mit denen das möglich ist? Muss es doch eigentlich, oder?

    Gruß Padde
     

  3. #3
    pede20 pede20 ist offline Grünschnabel
    Registriert seit
    Oct 2002
    Ort
    Wittershausen (BW)
    Beiträge
    3
    Ich habe die Lösung gefunden!

    Zur Vervollständigung hier die zu setzende Property:

    call.setProperty(Call.CHARACTER_SET_ENCODING, "ISO-8859-1");
     

Ähnliche Themen

  1. SOAP Axis
    Von kroschel im Forum Java
    Antworten: 0
    Letzter Beitrag: 17.01.08, 10:44
  2. SOAP Axis-Client Einstieg
    Von Sebastiano06 im Forum Java
    Antworten: 7
    Letzter Beitrag: 22.11.07, 14:45
  3. SOAP-Client mit Axis
    Von coolerMietzer im Forum Java
    Antworten: 1
    Letzter Beitrag: 10.10.07, 12:10
  4. SOAP XML Encryption von Axis Stubs
    Von misiu im Forum Java
    Antworten: 4
    Letzter Beitrag: 03.04.06, 11:18
  5. Java Axis WebService SOAP
    Von fifibellt im Forum Java
    Antworten: 1
    Letzter Beitrag: 18.04.05, 01:22