2016-09-12 30 views
0

我的代码来调用端口名称getDUNSProfile()看起来是这样的:何时发生javax.xml.ws.soap.SOAPFaultException?

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

我下面会收到一个异常(更新全堆栈跟踪)

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) 

这是否意味着我称为成功的港口?还是还没达到呢?
消息操作中的错误来自WS服务器返回的异常吗?

+0

这看起来不像整个堆栈跟踪。通常在堆栈中会有一个“Caused by”异常,它会告诉你这个问题。如果这是你的全部,你唯一的希望就是运行调试器,看看抛出异常时会发生什么。 – Brad

+0

我已经更新了完整的堆栈,我试图让它更容易混淆。由于在具有特殊配置的Linux上部署Jaxws客户端时只能访问服务,因此我可以执行调试。 –

+0

***我不能做调试****编辑上面的评论 –

回答

1

你有可能已经到达港口。参考the documentation of the Faultthis thread on code ranch似乎表明服务提供商正在抛出故障。在您的代码中,您可以添加一个块来捕获异常,并在调用时引发SOAPFault。如果错误得到妥善处理,理想情况下应该给你一个关于为什么发生异常的理由/代码。

+0

谢谢,我已经阻止捕获异常,这就是我从邮件中获取堆栈跟踪的地方。我搜索了“Error in operation”,但似乎JAXWS没有这种消息的类型,所以我想这是由服务提供商自定义的。 –

+1

明白了。可能只是为了检查,你可以尝试getFault,看看你是否有任何进一步的细节已经添加到SOAPFault –

+0

好吧,让我试试,我会在这里发布结果 –