-
Notifications
You must be signed in to change notification settings - Fork 317
Closed
Description
Jeremy Hare opened SWS-545 and commented
I have created a custom ExceptionResolver below:
public class MyExceptionResolver extends AbstractSoapFaultDefinitionExceptionResolver {
@Override
protected SoapFaultDefinition getFaultDefinition(Object endpoint,
Exception ex) {
QName messageDeliveryFaultQName = new QName(INVOKER_NS_URI, "MessageDeliveryFault", "invoker");
QName messageDeliveryFaultQNameNOPREFIX = new QName(INVOKER_NS_URI, "MessageDeliveryFault");
if (ex instanceof WebServiceTransportException) {
SoapFaultDefinition soapFaultDefinition = new SoapFaultDefinition();
soapFaultDefinition.setFaultCode(messageDeliveryFaultQNameNOPREFIX );
soapFaultDefinition.setFaultStringOrReason(ex.getMessage());
return soapFaultDefinition;
}
return null;
}
}
if I use the messageDeliveryFaultQNameNOPREFIX Qname as the fault code I get:
java.lang.IllegalArgumentException: Could not resolve namespace of code [{urn:www.thiess.com.au:services:eProcurement:QuadremInvoker:v1}MessageDeliveryFault]
at org.springframework.ws.soap.axiom.AxiomSoap11Body.setValueText(AxiomSoap11Body.java:117)
at org.springframework.ws.soap.axiom.AxiomSoap11Body.addFault(AxiomSoap11Body.java:92)
at org.springframework.ws.soap.server.endpoint.AbstractSoapFaultDefinitionExceptionResolver.resolveExceptionInternal(AbstractSoapFaultDefinitionExceptionResolver.java:89)
at org.springframework.ws.server.endpoint.AbstractEndpointExceptionResolver.resolveException(AbstractEndpointExceptionResolver.java:106)
at org.springframework.ws.server.MessageDispatcher.processEndpointException(MessageDispatcher.java:311)
at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:235)
at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168)
at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88)
at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:230)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:523)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:463)
The other Qname with a prefix works fine.
Affects: 1.5.7
Referenced from: commits ceac50a
Metadata
Metadata
Assignees
Labels
type: bugA general bugA general bug