jax ws生成的客户端无声地失败

时间:2013-01-26 11:12:51

标签: java soap jax-ws

我使用jax ws准备了一个spring web服务。它工作正常,我可以从许多其他项目调用此服务。

有趣的事情发生在另一个项目中。我试图再次使用这个客户端(通过添加as源和使用jar的类来尝试)。当我在服务上调用get end point port方法时(在我可以在web服务上调用实际方法之前),它无声地失败,没有迹象表明请求是服务的,没有异常被捕获。只有我的控制器上有一个finally子句,它会进行一些计算并退出(并打印一个日志)。

为什么这个失败不会产生一般异常?如何以其他方式跟踪错误? 或者一般来说,我做错了什么?

用法:

logger.debug("web service: " + transferService.toString());                                                                          
            logger.debug("web service qname: " + transferService.getServiceName());                                                              
            logger.debug("web service url: " + transferService.getWSDLDocumentLocation());                                                       
            //logger.debug("web service endpoint: " + transferService.getTransferEndPointPort().toString());                                     

            QueryCardNumberWithIdWSResponse response =                                                                                           
                                transferService.getTransferEndPointPort().queryId(request);

transferService对象正常运行,直到我们调用getTransferEndPointPort。然后它崩溃了。

getTransferEndPoint实现:

@WebEndpoint(name = "TransferEndPointPort")
    public TransferEndPoint getTransferEndPointPort() {
        loggerApache.debug("getting transfer end point ");
        loggerApache.debug("service name: " + super.getServiceName() );
        return super.getPort(new QName("http://www.blabla.com", "TransferEndPointPort"), TransferEndPoint.class);
    }

它打印日志,但是在super.getPort没有任何反应之后,只有控制器中的finally块工作。

编辑:过了一段时间我记得在catch子句中使用Throwable。所以我最终从服务中抓到了一个扔掉的东西。

是:

java error java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;

在搜索网页后,我得出结论,由于java版本,我不应该在我的网络服务中使用WebFault。我从web方法中删除了抛出异常(可能我忘了在早期阶段删除它),现在它似乎正在工作。

0 个答案:

没有答案