我正在寻找一个简单的NullPointerException,但是一个WebService代理总是忽略错误。
WS通过一个简单的客户端库公开,然后该客户端调用WS。在WS中的某个地方有一个NPE,我找不到它,因为堆栈跟踪只显示“$proxy.somemethod”,而不是问题的原因。
如何从代理对象获取堆栈跟踪?是否有一个好的策略来记录或处理这些异常?
...
Caused by: javax.xml.ws.soap.SOAPFaultException: java.lang.NullPointerException
at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:187)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:116)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:254)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:224)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:117)
******** I need the trace from this line *********
at $Proxy43.myMethod(Unknown Source)
*****************
at com.mypackage.client.MyClient.aMethod(MyClient.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
... 17 more
我读过一些书,这似乎与检查异常和未检查异常有关。所以如果我抛出一个IOException,我会得到堆栈跟踪,但是由于有一个NullPointerException冒泡,所以它没有给我跟踪。