Как мне получить Java WebService, чтобы фактически показывать мне исключения из прокси-объекта? - PullRequest
2 голосов
/ 01 ноября 2010

Я гоняюсь за тем, что должно быть простым NullPointerException, но прокси-сервер веб-службы продолжает глотать ошибку.

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, он не дает мне трассировку.

1 Ответ

1 голос
/ 02 ноября 2010

Оберните ваш сервис в блок try / catch и сгенерируйте исключение, которое определено как элемент fault вызываемого сервиса в вашем WSDL.Таким образом, клиент получит полезную трассировку стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...