JAX-WS Soap Fehler, die nicht in WSDL angezeigt werden

9

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!

    
cowls 12.03.2013, 10:04
quelle

2 Antworten

4

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.

    
jagra 25.03.2013, 11:04
quelle
1
___ answer15613130 ​​___

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.

    
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ answer15613351 ___

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.

    
___ qstnhdr ___ JAX-WS Soap Fehler, die nicht in WSDL angezeigt werden ___ qstntxt ___

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!

    
___ tag123jaxws ___ JAX-WS ist der JSR 224, der eine Java-API für XML-basierte Webdienste definiert ___ tag123exceptionhandling ___ Bei der Ausnahmebehandlung handelt es sich um ein Programmiersprachenkonstrukt oder einen Computerhardwaremechanismus, der das Auftreten von Exceptions behandelt, spezielle Bedingungen, die den normalen Ablauf der Programmausführung ändern. ___
secra 25.03.2013 10:52
quelle

Tags und Links