SWS-227
This commit is contained in:
@@ -147,6 +147,9 @@ public class SoapMessageDispatcher extends MessageDispatcher {
|
||||
*/
|
||||
private boolean headerUnderstood(EndpointInvocationChain mappedEndpoint, SoapHeaderElement headerElement) {
|
||||
EndpointInterceptor[] interceptors = mappedEndpoint.getInterceptors();
|
||||
if (ObjectUtils.isEmpty(interceptors)) {
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < interceptors.length; i++) {
|
||||
EndpointInterceptor interceptor = interceptors[i];
|
||||
if (interceptor instanceof SoapEndpointInterceptor &&
|
||||
|
||||
@@ -24,8 +24,6 @@ import javax.xml.soap.SOAPConstants;
|
||||
import javax.xml.soap.SOAPHeaderElement;
|
||||
import javax.xml.soap.SOAPMessage;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.easymock.MockControl;
|
||||
import org.springframework.ws.context.DefaultMessageContext;
|
||||
import org.springframework.ws.context.MessageContext;
|
||||
import org.springframework.ws.soap.SoapBody;
|
||||
@@ -38,6 +36,9 @@ import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
|
||||
import org.springframework.ws.soap.soap11.Soap11Fault;
|
||||
import org.springframework.ws.soap.soap12.Soap12Fault;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.easymock.MockControl;
|
||||
|
||||
public class SoapMessageDispatcherTest extends TestCase {
|
||||
|
||||
private SoapMessageDispatcher dispatcher;
|
||||
@@ -225,4 +226,23 @@ public class SoapMessageDispatcherTest extends TestCase {
|
||||
assertTrue("Invalid result", result);
|
||||
interceptorControl.verify();
|
||||
}
|
||||
|
||||
public void testProcessMustUnderstandHeadersNoInterceptors() throws Exception {
|
||||
MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
|
||||
SOAPMessage request = messageFactory.createMessage();
|
||||
SOAPHeaderElement header =
|
||||
request.getSOAPHeader().addHeaderElement(new QName("http://www.springframework.org", "Header"));
|
||||
header.setActor(SOAPConstants.URI_SOAP_ACTOR_NEXT);
|
||||
header.setMustUnderstand(true);
|
||||
SoapMessageFactory factory = new SaajSoapMessageFactory(messageFactory);
|
||||
MessageContext context = new DefaultMessageContext(new SaajSoapMessage(request), factory);
|
||||
interceptorControl.replay();
|
||||
|
||||
SoapEndpointInvocationChain chain = new SoapEndpointInvocationChain(new Object(), null);
|
||||
|
||||
boolean result = dispatcher.handleRequest(chain, context);
|
||||
assertFalse("Header understood", result);
|
||||
interceptorControl.verify();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user