3

假设我有这样的异常层次结构:

public class A extends RuntimeException {
...
}

public class B extends A {
...
}

在web服务接口中有一个方法:

public void aa() throws A;

此方法的实现可以抛出异常A或异常B,但是在部署到 tomcat 时,cxf 仅发布带有A异常声明的 wsdl。

我尝试@XmlRootElement在两个类、@XmlType两个类、@XmlRootElement父类、父类上@XmlRootElement使用@XmlSeeAlso,但发布的 wsdl 没有B异常声明。此外,我编写了一个使用该 wsdl 的测试,并且测试仅获得 A 异常,但是我已经模拟了这两种类型的异常。如何在 wsdl 声明中获取子异常?

4

1 回答 1

2

我认为您需要列出从 抛出AB可能的异常aa,否则 jaxb 无法知道您可能会抛出派生类的异常。尝试:

public void aa() throws A, B;
于 2012-05-23T10:53:33.733 回答