tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
866
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sleepwalker Sleepwalker ist offline Grünschnabel
    Registriert seit
    Dec 2010
    Beiträge
    3
    Hi,

    ich weiß nicht, wie ich das Problem anders benennen sollte. Es geht um folgendes:

    Ich spreche einen Web Service über Axis2 mit RAMPart an. Das Databinding ist auf xmlbeans gesetzt und der Aufruf ist synchron. RAMPart funktioniert soweit. Der Aufruf des Web Services ist wie folgt:
    Code :
    1
    
    PutMessageResponseDocument response = stub.putMessage(putMessageDocument, payloadManifestDocument, id);
    Nun bekomme ich aber einen Axis fault zurück.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    catch (AxisFault ex) {
        System.err.println("AxisFault!");
        System.err.println("Message: " + ex.getMessage());
        System.err.println("Fault Code: " + ex.getFaultCode());
        System.err.println("Details: " + ex.getDetail());     
        if (ex.getFaultMessageContext() != null) {         
            System.err.println("Envelope: " + ex.getFaultMessageContext().getEnvelope().toString());
    }

    Mein Problem ist, dass ich nicht an die Nachricht selbst herankomme. Ich möchte den Quellcode des Stubs nicht verändern, sondern das Objekt in der Hand haben und ausgeben können.

    Ich bekomme aber generell nur das hier als Ausgabe:
    Code :
    1
    2
    3
    4
    
    AxisFault!
    Message: error: The document is not a PutMessageResponse@http://www.foo.de/foo: document element mismatch got Fault@http://schemas.xmlsoap.org/soap/envelope/
    Fault Code: null
    Details: null

    In der Nachricht selbst steht aber noch mehr drin (wenn ich den Quellcode des Stubs ändere):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Verschlüsselungskram
    ...
    <soapenv:Fault>
    <faultcode>soapenv:Client</faultcode>
    <faultstring>Relationship not exists</faultstring>
    <detail><ErrorMessage>Blablabla</ErrorMessage></detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soap:Envelope>

    Wie komme ich da ran? Mir ist klar, dass das kein PutMessageDocument sondern ein Fault ist :\ Aber der Aufruf des Web Services gibt nunmal nur ein PutMesaageDocument zurück. Oder wie kann ich das sonst angehen? Auf den Web Service habe ich keinerlei Einfluss.
    Vielen Dank im Voraus.

    Gruß
     

  2. #2
    MadM MadM ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Ort
    Darmstadt
    Beiträge
    39
    schau dir mal die API zu AxisFault an, da gibts noch ne Reihe an Methoden, die du mal ausprobieren könntest:
    http://axis.apache.org/axis2/java/co...AxisFault.html

    z.B.
    getFaultCodeElement
    getFaultReasonElement
    getFaultNodeElement
    getFaultDetailElement
     

  3. #3
    Sleepwalker Sleepwalker ist offline Grünschnabel
    Registriert seit
    Dec 2010
    Beiträge
    3
    Hi MadM,

    ich habe sämtliche Methoden durchprobiert, aber irgendwie will da nichts funktionieren.
    In TCPMon sehe ich noch, dass etwas verschlüsseltes ankommt, aber dann kommt auch schon der Fault. Im Stub habe ich noch eingetragen, dass die unverschlüsselte Nachricht ausgegeben werden soll, aber selbst das funktioniert nicht. Wenn ich keinen Fault zurück bekomme, wird die Nachricht ausgegeben.
    Ich bin echt am verzeifeln.

    Gruß
     

  4. #4
    Sleepwalker Sleepwalker ist offline Grünschnabel
    Registriert seit
    Dec 2010
    Beiträge
    3
    Hi,

    ich habe eine mögliche Ursache meines Problems:

    1. Die Nachrichten sind verschlüsselt
    2. Die Fehlermeldung kommt auch verschlüsselt bei mir an
    3. Der SOAP Header enthält die "action" eines Faults (im Klartext)
    4. Axis2 oder RAMPart versuchen anscheinend den Body der Nachricht auch im Klartext zu lesen, weil im Header ja steht, dass es ein Fault sei. Der Body existiert natürlich so nicht, wenn noch nichts entschlüsselt ist

    Problem: Wie bekomme ich eine "erzwungene" Entschlüsselung eines Faults hin?


    Danke und Gruß
     

Ähnliche Themen

  1. AXIS2 SOAP auslesen
    Von Bartholoudeus im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 09.12.09, 17:41
  2. AXIS2-Webservice und PHP-Client
    Von Moritz123 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 27.04.09, 16:04
  3. Axis2 repository für axis2.xml client configuration
    Von Markus Taubek im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 22.10.08, 15:30
  4. Beispiele zu Axis2 und SOAP Streams
    Von WeirdAl im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 24.09.07, 14:43
  5. [Java] Soap Serializer Fault
    Von Christian Fein im Forum Java
    Antworten: 1
    Letzter Beitrag: 07.04.03, 16:48