2016-09-12 3 views
0

Mein Code auf einen Portnamen getDUNSProfile() aufrufen wie folgt aussieht:Wann findet die javax.xml.ws.soap.SOAPFaultException statt?

public class LookupRequestProcessor 
{ 
    protected GetCleanseMatchResponse sendRequest(Request request) throws Exception_Exception, GetDUNSProfileFault, PayloadException 
    { 
    return DNBPortUtil.getDunsService().getDUNSProfile(); 
    } 
} 

Und ich erhalten, wie unten eine Ausnahme (aktualisiert mit voller Stacktrace)

java.lang.Error: javax.xml.ws.soap.SOAPFaultException: Error in operation: 
     at imx.svb.module.getdunsprofile.LookupRequestProcessor.doWork(LookupRequestProcessor.java:478) 
     at imx.svb.TemplateDatablockProcessor.run(TemplateDatablockProcessor.java:63) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: javax.xml.ws.soap.SOAPFaultException: Error in operation: 
     at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:197) 
     at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:130) 
     at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:125) 
     at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95) 
     at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:136) 
     at com.sun.proxy.$Proxy97.getDUNSProfile(Unknown Source) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:84) 
     at com.sun.proxy.$Proxy98.getDUNSProfile(Unknown Source) 
     at imx.svb.module.getdunsprofile.LookupRequestProcessor.sendRequest(LookupRequestProcessor.java:258) 
     at imx.svb.module.getdunsprofile.LookupRequestProcessor.doWork(LookupRequestProcessor.java:472) 

bedeutet das ich Erfolgreich zum Hafen gerufen? Oder immer noch nicht erreicht?
Wird die Nachricht Fehler in der Operation von Ausnahme vom WS-Server zurückgegeben?

+0

Das sieht nicht wie die gesamte Stack-Spur aus. Normalerweise gibt es eine "Caused by" Ausnahme weiter unten im Stack, die Ihnen das Problem mitteilen sollte. Wenn dies alles ist, was Sie haben, besteht Ihre einzige Hoffnung darin, den Debugger zu durchlaufen und zu sehen, was passiert, wenn die Ausnahme ausgelöst wird. – Brad

+0

Ich habe für den vollen Stapel aktualisiert, ich habe versucht, es weniger verwirrend zu machen. Ich kann das Debuggen durchführen, weil der Dienst nur erreichbar ist, wenn ich die Jaxws-Client-Seite unter Linux mit spezieller Konfiguration zur Verfügung stelle. –

+0

*** Ich kann nicht debuggen **** Bearbeiten Sie obigen Kommentar –

Antwort

1

Wahrscheinlich haben Sie den Hafen erreicht. Die Referenzierung the documentation of the Fault und this thread on code ranch scheint darauf hinzudeuten, dass ein Fehler vom Anbieter des Dienstes ausgelöst wird. In Ihrem Code können Sie einen Block hinzufügen, um die Exception abzufangen und den SOAPFault auszulösen, wenn er aufgerufen wird. Wenn der Fehler gut behandelt wird, sollte er idealerweise einen Grund/Code angeben, warum die Ausnahme auftritt.

+0

Vielen Dank, ich habe Block, um die Ausnahme bereits zu fangen, das ist, wo ich den Stack-Trace wie von der Post erhalten. Ich googelte nach "Fehler in der Operation", aber es scheint, dass es keine Art von dieser Nachricht von JAXWS gibt, also denke ich, dass es vom Dienstanbieter benutzerdefiniert ist. –

+1

Bekam es. Vielleicht nur um zu überprüfen, könnten Sie getFault versuchen und sehen, ob Sie weitere Details, die in SOAPFault –

+0

hinzugefügt wurden Ok, lassen Sie mich versuchen, ich werde das Ergebnis hier posten –

Verwandte Themen