gpt4 book ai didi

java - JAX-WS 客户端抛出 SOAPFaultException 而不是自定义异常

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:37 27 4
gpt4 key购买 nike

我正在开发一个基于 JAX-WS 的应用程序。我使用 wsgen 从服务器生成 WSDL,然后使用 wsimport 构建客户端库。我正在编写自己的自定义异常以通过我的方法调用抛出。代码结构如下。

自定义异常类:

@WebFault(faultBean = "com.mysite.FaultBean")
public class MyCustomException extends Exception {
private FaultBean faultInfo;

//Getters/Setters/Constructors...
}

自定义故障 Bean:

public class FaultBean {
private String message;
private List<String> messages;

//Getters/Setters/Constructors...
}

然后,我从 Web 服务端点中的方法抛出 MyCustomException。当我调用我的 Web 服务方法之一并引发异常时,客户端将收到 SOAPFaultException 而不是 MyCustomException。为什么自定义异常没有被使用?

最佳答案

因此,经过一番调查后发现,作为 SOAPFaultException 抛出的异常并非来 self 认为的位置。它们实际上并没有被作为 MyCustomException 抛出。因此,为了解决所有情况下的这个问题,我利用了 Spring AOP 并创建了一个 around 方面来包装对 Web 服务实现层的所有调用。

在这方面,我捕获任何抛出的异常,并将其包装在 MyCustomException 中,然后重新抛出。然后我的客户就可以正确处理异常了。

关于java - JAX-WS 客户端抛出 SOAPFaultException 而不是自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12609910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com