В процессе перехода к Spring WS и использования JAXB из wsdl для генерации объектов, используемых в сообщении Soap. У меня возникла проблема с попыткой получить пользовательское исключение в поле сведений сообщения Soap Fault. Ниже описано, как возвращается существующее сообщение о неисправности (подробно описано в FooException).Ошибка мыла. Нестандартное исключение
<env:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Header/>
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>Service specific exception: com.test.FooException: Invalid authentication credentials. Please try again.</faultstring>
<detail>
<n1:FooException xsi:type="n1:FooException" xmlns:n1="java:com.test">
<errorCode xsi:type="xsd:int">101</errorCode>
<errorReason xsi:type="xsd:string">InvalidUserCredentials:Invalid authentication credentials. Please try again</errorReason>
</n1:FooException>
</detail>
</env:Fault>
</env:Body>
</env:Envelope>
У меня настроен идентификатор компонента exceptionResolver клиента в файле конфигурации Spring Spring.
<bean id="exceptionResolver" class="com.test.FacadeExceptionHandler">
<property name="order" value="1"></property>
<property name="defaultFault" value="SERVER"/>
<property name="exceptionMappings">
<value> com.test.FooException=SERVER,FaultMsg </value>
</property>
</bean>
Я создал FacadeExceptionHandler и он вызывался, но я не могу понять, как получить FooException в детали части сообщения об ошибке.
Любая помощь будет оценена!
Заранее благодарим за вашу помощь!
Покажите нам реализацию 'FooException' – kolossus