在Java中,当网络连接在WebService调用过程中丢失时引发异常(类似于WCF CommunicationException)
我正在处理使用JAX-WSRI生成的Java中自动生成的WebService存根 我的实际服务是一个.Net程序,它使用WCF basicHttpBinding公开其Web服务 在实际的Web服务调用期间,我应该如何处理通信问题。i、 e.在客户端的WCF中,如果遇到通信/网络问题,您将使用catch CommunicationException来包装您的呼叫 处理这个问题似乎没有经过检查的例外情况 当我通过web服务方法查看自动生成的存根接口时,除了WSDL公开的预定义FaultExceptions/消息之外,不会抛出异常 另外,当我实际测试网络断开连接时WebService调用期间会发生什么时,客户端只是挂起调用,而不是抛出某种运行时异常 想法在Java中,当网络连接在WebService调用过程中丢失时引发异常(类似于WCF CommunicationException),java,wcf,web-services,Java,Wcf,Web Services,我正在处理使用JAX-WSRI生成的Java中自动生成的WebService存根 我的实际服务是一个.Net程序,它使用WCF basicHttpBinding公开其Web服务 在实际的Web服务调用期间,我应该如何处理通信问题。i、 e.在客户端的WCF中,如果遇到通信/网络问题,您将使用catch CommunicationException来包装您的呼叫 处理这个问题似乎没有经过检查的例外情况 当我通过web服务方法查看自动生成的存根接口时,除了WSDL公开的预定义FaultExcepti
谢谢为什么您认为必须将通信错误(例如,由于网络故障)作为已检查的异常进行处理是有用的?Web服务的调用者如何有效地处理这种情况
在我看来,最好允许未经检查的异常向上传播到堆栈中,直到可以合理处理为止。您的问题似乎完全是关于Java客户端/存根的,与WCF服务毫无关系。这是正确的吗?您可以使用WS-ReliableMessaging来处理此类问题。这就是它看起来的样子。我认为必须以不同的方式生成存根,以公开某种类型的通信错误检查异常,如javax.xml.soap.SOAPException。为了响应kd304,我考虑在支持可靠消息传递的服务器端使用WsHttpBinding。我不太熟悉可靠消息传递的概念,但是如果它被打开并且web引用被更新,java客户端是否会简单地挂起服务调用,直到重新建立连接?谢谢它也可能是一个运行时异常,但是在我的例子中,似乎没有抛出异常,服务调用只是挂起。在相应的.Net WCG客户端应用程序中,我可以捕获CommunicationException和TimeoutException,并相应地进行处理。