В настоящее время у меня возникает проблема с кодами ошибок и сообщениями с использованием Spring WS.Как преобразовать исключения в коды возврата с помощью Spring-WS?
Мы используем Spring WS 2.0 с привязкой JAXB2 и аннотами @Endpoint и @PayloadRoot для удобства.
Наша конечная точка выглядит следующим образом:
@Endpoint
public class MyEndpoint() {
private static final String MY_NAMESPACE=...;
@PayloadRoot(namespace=MY_NAMESPACE, localPart="myPart")
public MyPartResponse handleMyPart(MyPart myPart) {
....
}
}
Мы используем мыло только в виде тонкой оболочки вокруг сообщения ЧО, определяемом XSD. Это также означает, что вместо ошибок мы используем коды возврата и сообщения.
Каждый ответ наследует от
<xs:complexType name="ResultBase">
<xs:sequence>
<xs:element name="errorCode" type="tns:ErrorCode" />
<xs:element name="errorMessage" type="xs:string" />
</xs:sequence>
</xs:complexType>
и добавляет некоторые особенности в случае успеха, как это:
<xs:element name="MySpecificResponse">
<xs:complexType>
<xs:complexContent>
<xs:extension base="tns:ResultBase">
<xs:sequence>
<xs:element name="mySpecificElement" type="tns:MySpecificType" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
Все исключения бросают внутри handleMyPart метод может быть чисто отображенной.
Однако два типа ошибок остается неперехваченным и генерировать ошибки, а не четкое сообщение об ошибке:
- XSD Validations Ошибке
- Искаженных XML Ошибок
В конце дня, это проблемы, которые имеют отношение к каждому веб-сервису POX, используя Spring WS. Как следует перехватывать эти исключения и отображать затем объект ответа?
Помните: все объекты отклика немного отличаются от, поскольку все они наследуются от общего, но добавляют к нему уникальный дополнительный дополнительный контент.
Я просто поднял функция запроса на Спринг-WS Jira: HTTPS://jira.springframework.org/browse/SWS-657 –