gpt4 book ai didi

java - 使用@WebFault 进行 JAX-WS 异常处理

转载 作者:行者123 更新时间:2023-11-30 11:15:01 25 4
gpt4 key购买 nike

我正在尝试使用 @WebFault 注释,并且我有一个可以抛出多个异常的 Web 服务,例如以下示例类 MyException1。

遵循 http://java.globinch.com/enterprise-java/web-services/jax-ws/jax-ws-exceptions-faults-annotation-exception-and-fault-handling-examples/ 中的示例我将每个异常编码为 MyException1,所有 MyException[N] 类都相似:它们有一个私有(private)成员,即 Fault POJO/bean 和构造函数。

如何避免像这样复制粘贴仅类名不同的 N 个类?我无法定义基类并将每个异常子类化,因为它们无法继承构造函数。

@WebFault(name="ServiceFault",targetNamespace="http://somenamespace.com")
public class MyException1 extends Exception {

/**
*
*/
private static final long serialVersionUID = 1L;
private ServiceFault fault;

public MyException1(String message) {
super(message);
}

public ServiceFault getFault() {
return fault;
}

public MyException1() {
super();
// TODO Auto-generated constructor stub
}

public MyException1(String message, Throwable cause,
boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
// TODO Auto-generated constructor stub
}

public MyException1(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
}

public MyException1(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
}

public MyException1(ServiceFault fault) {
super(fault.getFaultString());
this.fault = fault;
}

public MyException1(String message, ServiceFault fault) {
super(message);
this.fault = fault;
}

public MyException1(String message, ServiceFault fault,
Throwable cause) {
super(message, cause);
this.fault = fault;
}

public MyException1(String code, String message) {
super(message);
this.fault = new ServiceFault();
this.fault.setFaultCode(code);
this.fault.setFaultString(message);
}

}

... and similarly for MyException2, ..., MyExceptionN

最佳答案

选项:-

1) 要么有一个父 MyWSException 有一个 ServiceFault POJO 由子异常类扩展,这些子异常类的名称代表您的服务中发生的异常。

2) 有一个通用的 MyWSException 类,其详细信息封装在 ServiceFault POJO 中。

关于java - 使用@WebFault 进行 JAX-WS 异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25638029/

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