3
は、私はこのような例外の階層があるとします。Webサービス・インターフェースでメソッド宣言の例外。 JAXB
public class A extends RuntimeException {
...
}
public class B extends A {
...
}
方法がある。この方法の
public void aa() throws A;
実装は、いずれかの例外A
または例外B
を投げるが、デプロイ時にすることができますtomcat cxfはA
例外宣言のみでwsdlを公開します。
私は親クラスに@XmlSeeAlso
で親クラスの両方のクラスの両方のクラスに@XmlRootElement
、@XmlType
、@XmlRootElement
、@XmlRootElement
を使用しようとしましたが、B
例外宣言を持たないWSDLを公開しています。また、私はそのwsdlを使用してテストを書いて、テストは例外を取得しますが、私は両方のタイプの例外をエミュレートしました。 wsdl宣言で子例外を取得するにはどうすればよいですか?
「スロー」で例外の階層を宣言するのは非常に快適な方法ではありません。たぶん、いくつかのインターセプターを書くことによって行うことができますか?つまり、メソッドに例外Aの宣言がある場合(例えば)、インターセプタは例外Aを継承するすべての例外を追加する必要があります。 – maks
あなたは確かにインセプタを書くことができますが、JAXBContextはそれを知っている限り派生クラスについても(@ XmlSeeはあなたのためにしておくべきです)。あなたは他の技術も見てみたいです:[1](http://stackoverflow.com/questions/6469599/using-derived-classes-when-marshelling-with-jaxb)、[2](http ://stackoverflow.com/questions/8318231/xmlseealso-ternative)、[3](http://blog.bdoughan.com/2010/11/jaxb-and-inheritance-using-substitution.html)、[4] (http://blog.bdoughan.com/2010/11/jaxb-and-inheritance-moxy-extension.html) – Attila