Я пытаюсь реализовать пользовательские мыльных ошибки, как показано ниже:Пользовательские Ошибки SOAP в пружинный интеграции кода ошибки имен
@SoapFault(faultCode = FaultCode.CUSTOM, customFaultCode="{namespace}Server Error", faultStringOrReason="Error encountered when processing request message.")
public class SystemFault extends BusinessException{ }.
Неисправность мыла выброшен имеет ниже формат:
<.SOAP-ENV:Fault>
<.faultcode xmlns:ns0="namespace">ns0:star:Server Error<./faultcode>
<.faultstring xml:lang="en">Error Encountered when processing the request.<./faultstring>
<./SOAP-ENV:Fault>
Как вы можете см., код кода ошибки появляется с объявлением пространства имен. Пожалуйста, дайте мне знать, если это все равно, чтобы этого избежать. Формат клиента неисправностей мыла ожидает это:
<.soapenv:Fault xmlns:star="http://www.starstandard.org/STAR/5">
<.faultcode>star:Custom Fault Code<./faultcode>
<.faultstring>Custom Fault message<./faultstring>
<./soapenv:Fault>
Я Проверено AbstractSoapFaultDefinitionExceptionResolver.resolveExceptionInternal()
метода, и он ожидает QName
экземпляра для кода ошибки, а не строки. Пожалуйста, дайте мне знать, как это решить.
Привет, Артем, спасибо за подробную почту. Я нашел проблему с этим. Существует вызов метода из AbstractSoapFaultDefinitionExceptionResolver.getFaultDefinition(), как показано ниже fault = soap11Body.addFault (definition.getFaultCode(), faultStringOrReason, definition.getLocale()); Таким образом, в SaajSoap11Body существует инструкция Assert.Ahert.hasLength (faultCode.getNamespaceURI(), "namespaceUri ErrorCode не может быть пустым") ;. Это вызывает проблему. –
Ну, если вы можете объявить свои 'xmlns' в корневом элементе' '', вы все равно можете объявить его как прежде с экземпляром '{namespace}'. В соответствии с 'FaultImpl' он должен' обеспечиватьNamespaceIsDeclared() ', что означает повторное использование и существующие' xmlns'. –
Я могу привести объявление пространства имен в, переопределив метод resolveExceptionInternal. Но я не могу принести объявление пространства имен в тег –