IN PROGRESS - issue INT-389: Allow configuration of a WebServiceMessageSender instance for WS handlers

http://jira.springframework.org/browse/INT-389

added setter methods on AbstractWebServiceHandler and namespace support
This commit is contained in:
Jonas Partner
2008-10-03 10:42:26 +00:00
parent 3d6969a837
commit 9b26c725e3
6 changed files with 110 additions and 1 deletions

View File

@@ -91,6 +91,19 @@ public class WebServiceHandlerParser extends AbstractSingleBeanDefinitionParser
if (StringUtils.hasText(faultMessageResolverRef)) {
builder.addPropertyReference("faultMessageResolver", faultMessageResolverRef);
}
String messageSenderRef = element.getAttribute("message-sender");
String messageSenderListRef = element.getAttribute("message-senders");
if(StringUtils.hasText(messageSenderRef) && StringUtils.hasText(messageSenderListRef)){
throw new ConfigurationException("Only one of message-sender or mesage-senders should be specified");
}
if (StringUtils.hasText(messageSenderRef)) {
builder.addPropertyReference("messageSender", messageSenderRef);
}
if (StringUtils.hasText(messageSenderListRef)) {
builder.addPropertyReference("messageSenders", messageSenderListRef);
}
}
}

View File

@@ -33,6 +33,8 @@
<xsd:attribute name="request-callback" type="xsd:string"/>
<xsd:attribute name="message-factory" type="xsd:string"/>
<xsd:attribute name="fault-message-resolver" type="xsd:string"/>
<xsd:attribute name="message-sender" type="xsd:string"/>
<xsd:attribute name="message-senders" type="xsd:string"/>
</xsd:complexType>
</xsd:element>

View File

@@ -30,6 +30,7 @@ import org.springframework.ws.client.core.WebServiceMessageCallback;
import org.springframework.ws.client.core.WebServiceTemplate;
import org.springframework.ws.soap.SoapMessage;
import org.springframework.ws.soap.client.core.SoapActionCallback;
import org.springframework.ws.transport.WebServiceMessageSender;
/**
* Base class for outbound Web Service-invoking adapters.
@@ -65,7 +66,15 @@ public abstract class AbstractWebServiceHandler extends AbstractMessageHandlingE
public void setFaultMessageResolver(FaultMessageResolver faultMessageResolver) {
this.webServiceTemplate.setFaultMessageResolver(faultMessageResolver);
}
public void setMessageSender(WebServiceMessageSender messageSender) {
this.webServiceTemplate.setMessageSender(messageSender);
}
public void setMessageSenders(WebServiceMessageSender[] messageSenders) {
this.webServiceTemplate.setMessageSenders(messageSenders);
}
protected WebServiceTemplate getWebServiceTemplate() {
return this.webServiceTemplate;
}