/ / Wyjątki w deklaracjach metod. JAXB - java, usługi sieciowe, jaxb, cxf

Wyjątki w deklaracjach metod. JAXB - java, web-services, jaxb, cxf

Załóżmy, że mam taką hierarchię wyjątków:

public class A extends RuntimeException {
...
}

public class B extends A {
...
}

W interfejsie usługi internetowej istnieje metoda:

public void aa() throws A;

Implementacja tej metody może wyrzucić dowolny wyjątek A lub wyjątek B, ale podczas wdrażania do tomcat cxf publikuje wsdl tylko z A deklaracja wyjątku.

Próbowałem użyć @XmlRootElement na obu klasach @XmlType na obu klasach @XmlRootElement w klasie rodzicielskiej @XmlRootElement z @XmlSeeAlso na klasie nadrzędnej, ale opublikowany wsdl nie ma B deklaracja wyjątku. Napisałem również test, który używa tego WSDL, a test otrzymuje tylko wyjątek, jednak emulowałem oba typy wyjątków. Jak mogę uzyskać wyjątek potomny w deklaracji WSDL?

Odpowiedzi:

2 dla odpowiedzi № 1

Myślę, że musisz wymienić oba A i B jak to możliwe wyjątki od aa, w przeciwnym razie jaxb nie będzie wiedział, że możesz zgłaszać wyjątki od klas pochodnych. Próbować:

public void aa() throws A, B;