Here's the last bits from the log when it fails:
Code:
DEBUG RMICallHandler-58 org.springframework.ws.soap.server.SoapMessageDispatcher - Endpoint invocation resulted in exception - responding with Fault
java.lang.IllegalStateException: No adapter for endpoint [public void service.ws.MarshallingSanctionEndpoint.applySanction(service.schema.Apply) throws javax.xml.datatype.DatatypeConfigurationException]: Does your endpoint implement a supported interface like MessageHandler or PayloadEndpoint?
at org.springframework.ws.server.MessageDispatcher.getEndpointAdapter(MessageDispatcher.java:279)
at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:220)
at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168)
and the endpoint:
Code:
@Endpoint
public class MarshallingSanctionEndpoint implements WebServiceConstants {
@PayloadRoot(localPart = "Apply", namespace="...")
public void applySanction(Apply request) throws DatatypeConfigurationException{
// Do stuff...
}
}
And here's how it's wired up:
Code:
<bean id="marshallingEndpoint" class="service.ws.MarshallingSanctionEndpoint" />
Code:
<bean id="annotationMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping">
<property name="interceptors">
<list>
<bean class="org.springframework.ws.soap.server.endpoint.interceptor.SoapEnvelopeLoggingInterceptor" />
<bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor" />
<bean class="org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor">
<property name="xsdSchemaCollection" ref="schemaCollection" />
<property name="validateRequest" value="true" />
<property name="validateResponse" value="true" />
</bean>
</list>
</property>
<property name="order" value="1" />
</bean>
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath" value="service.schema" />
</bean>