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 № 1Myś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;