Search code examples
javaspringspring-wsaxiom

Axiom dependency version required by spring web service 2.0


What is the version of Apache Axiom to be used with 2.0. I'm trying to use Axiom 1.2.8 and it is throwing some method not found error.

I've a annotated end point as given below.

@PayloadRoot(localPart = "employeeUpdateRequest", namespace = "http://www.example.org/goservices-ws")
@ResponsePayload
public EmployeeUpdateResponse update(
        @RequestPayload EmployeeUpdateRequest request,
        MessageContext messageContext) throws EncryptionException {
    if (log.isInfoEnabled()) {
        log.info("Inside UpdateEnabledStatusEndpoint");
    }

    EmployeeUpdateResponse response = new EmployeeUpdateResponse();

    return response;
}

The request is successfully reaching my endpoint but when I returns the response it is throwing a java.lang.NoSuchMethodError.

java.lang.NoSuchMethodError: org.apache.axiom.soap.SOAPFactory.createOMElement(Lorg/apache/axiom/om/OMDataSource;Ljavax/xml/namespace/QName;)Lorg/apache/axiom/om/OMSourcedElement;
    at org.springframework.ws.soap.axiom.AxiomSoapBody.setStreamingPayload(AxiomSoapBody.java:71)
    at org.springframework.ws.soap.axiom.AxiomSoapMessage.setStreamingPayload(AxiomSoapMessage.java:175)
    at org.springframework.ws.server.endpoint.adapter.method.jaxb.AbstractJaxb2PayloadMethodProcessor.marshalToResponsePayload(AbstractJaxb2PayloadMethodProcessor.java:93)
    at org.springframework.ws.server.endpoint.adapter.method.jaxb.XmlRootElementPayloadMethodProcessor.handleReturnValue(XmlRootElementPayloadMethodProcessor.java:66)
    at org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter.handleMethodReturnValue(DefaultMethodEndpointAdapter.java:284)
    at org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter.invokeInternal(DefaultMethodEndpointAdapter.java:237)
    at org.springframework.ws.server.endpoint.adapter.AbstractMethodEndpointAdapter.invoke(AbstractMethodEndpointAdapter.java:53)
    at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:230)
    at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:172)

What is the reason for it? How can I solve this?

Thank you.


Solution

  • After some search through the svn source, I found that the version needed is Axiom 1.2.9.