Ich erstelle einen Web-Service mit JAX-WS (ich erstelle das mit dem Java-zu-WSDL-Ansatz).
Ich habe Probleme, meine Ausnahme so zu aktivieren, wie ich es brauche.
Ich habe die folgende Ausnahmeklasse erstellt:
%Vor%Dies ermöglicht mir Folgendes in meiner SOAP-Antwort:
%Vor% Da meine Ausnahme jedoch eine SOAPFaultException
ist, die RuntimeException
erweitert, wird sie der WSDL nicht hinzugefügt. Wenn also Benutzer des Dienstes ihre Client-Stubs generieren, ist die Ausnahme nicht enthalten.
Kann jemand diese Ausnahme erstellen, um mir die beabsichtigte Ausgabe zu geben (dh einschließlich der Fehlercode und Fehlerkette), sondern auch in der WSDL erscheinen (ich denke, es muss eine geprüfte Ausnahme sein)
Ich suchte SO hoch und niedrig, um mit dem zu kommen, was ich bereits habe!
Wenn Sie angeben, dass Ihr WebMethod MyWebServiceException auslöst, wird es in WSDL angezeigt.
Aber wahrscheinlich sollten Sie sich nicht mit SOAPFault-Codes anlegen. Wenn Sie eine Geschäftsausnahme erstellen und diese auslösen, können Sie Fehlercodes im Client erhalten, ohne mit den Interna von Soap zu arbeiten.
Ihre Webmethode würde wie folgt aussehen:
%Vor%Ihre Geschäftsausnahme:
%Vor%Und die Rückkehr onexception wird sein:
%Vor%Sie können auch eine Stack-Trace hinzufügen, aber das wäre besser, eingeloggten Server zu bekommen, vielleicht mit einer GUUID, um bei Bedarf mit Client-Fehler zu korrelieren.
Angenommen, Sie verwenden JAX-WS und nicht JAX-RPC, können Sie einfach extends SOAPFaultException
entfernen. Fügen Sie anschließend die erforderlichen Felder zu Ihrer eigenen Ausnahme hinzu:
Dies ist ein StackTraceElement (nur als Beispiel):
%Vor%Dies ist die SOAP-Info:
%Vor%Und das ist die wirkliche Ausnahme:
%Vor%Ich bin ehrlich gesagt nicht dazu gekommen, das in ein Testprojekt zu stecken. Sie müssen also einige Kompilierungsprobleme ausbügeln. Aber ich hoffe du bekommst das Bild.
Wenn Sie angeben, dass Ihr WebMethod MyWebServiceException auslöst, wird es in WSDL angezeigt.
Aber wahrscheinlich sollten Sie sich nicht mit SOAPFault-Codes anlegen. Wenn Sie eine Geschäftsausnahme erstellen und diese auslösen, können Sie Fehlercodes im Client erhalten, ohne mit den Interna von Soap zu arbeiten.
Ihre Webmethode würde wie folgt aussehen:
%Vor%Ihre Geschäftsausnahme:
%Vor%Und die Rückkehr onexception wird sein:
%Vor%Sie können auch eine Stack-Trace hinzufügen, aber das wäre besser, eingeloggten Server zu bekommen, vielleicht mit einer GUUID, um bei Bedarf mit Client-Fehler zu korrelieren.
Ich erstelle einen Web-Service mit JAX-WS (ich erstelle das mit dem Java-zu-WSDL-Ansatz).
Ich habe Probleme, meine Ausnahme so zu aktivieren, wie ich es brauche.
Ich habe die folgende Ausnahmeklasse erstellt:
%Vor%Dies ermöglicht mir Folgendes in meiner SOAP-Antwort:
%Vor%Da meine Ausnahme jedoch eine %code% ist, die %code% erweitert, wird sie der WSDL nicht hinzugefügt. Wenn also Benutzer des Dienstes ihre Client-Stubs generieren, ist die Ausnahme nicht enthalten.
Kann jemand diese Ausnahme erstellen, um mir die beabsichtigte Ausgabe zu geben (dh einschließlich der Fehlercode und Fehlerkette), sondern auch in der WSDL erscheinen (ich denke, es muss eine geprüfte Ausnahme sein)
Ich suchte SO hoch und niedrig, um mit dem zu kommen, was ich bereits habe!
Tags und Links java exception-handling jax-ws