SWS-702 - sws:annotation-driven does not pick up @Endpoint annotations on classes that are JDK proxies

This commit is contained in:
Arjen Poutsma
2011-05-19 12:49:58 +00:00
parent bd62e54013
commit cc73683820
2 changed files with 6 additions and 3 deletions

View File

@@ -33,6 +33,7 @@ import org.springframework.ws.server.EndpointAdapter;
import org.springframework.ws.server.EndpointMapping;
import org.springframework.ws.server.MessageDispatcher;
import org.springframework.ws.server.endpoint.MethodEndpoint;
import org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter;
import org.springframework.ws.server.endpoint.adapter.PayloadMethodEndpointAdapter;
import org.springframework.ws.soap.saaj.SaajSoapMessage;
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
@@ -73,12 +74,13 @@ public class PayloadRootAnnotationMethodEndpointMappingTest {
request.getSOAPBody().addBodyElement(QName.valueOf("{http://springframework.org/spring-ws}Request"));
MessageContext messageContext =
new DefaultMessageContext(new SaajSoapMessage(request), new SaajSoapMessageFactory(messageFactory));
EndpointAdapter adapter = new PayloadMethodEndpointAdapter();
DefaultMethodEndpointAdapter adapter = new DefaultMethodEndpointAdapter();
adapter.afterPropertiesSet();
MessageDispatcher messageDispatcher = new SoapMessageDispatcher();
messageDispatcher.setApplicationContext(applicationContext);
messageDispatcher.setEndpointMappings(Collections.<EndpointMapping>singletonList(mapping));
messageDispatcher.setEndpointAdapters(Collections.singletonList(adapter));
messageDispatcher.setEndpointAdapters(Collections.<EndpointAdapter>singletonList(adapter));
messageDispatcher.receive(messageContext);

View File

@@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
import org.springframework.ws.server.endpoint.annotation.RequestPayload;
@Endpoint
public class PayloadRootEndpoint {
@@ -37,7 +38,7 @@ public class PayloadRootEndpoint {
@PayloadRoot(localPart = "Request", namespace = "http://springframework.org/spring-ws")
@org.springframework.ws.server.endpoint.mapping.Log
public void doIt(Source payload) {
public void doIt(@RequestPayload Source payload) {
doItInvoked = true;
logger.info("In doIt()");
}