0

Requirements

  1. Need to call a webservice which has a wsdl, that wont open through a browser.
    I have the wsdl document in which a dummy endpoint is given.
    Once the stub classes etc are generated , the end point should be changed at runtime .

  2. A third party method has to be called which would add a header in the SOAP message , This method would only accept a SOAP message, This method has to be called from a SoapHandler which we should add in the flow.

I have tried with all of the follwing

Axis 2
The service works well with Axis2 except for the problem that I am only able to access a AxisMesage in the handlers and not a SOAP message and hence I am not able to call my third party method fails

Axis 1.4 The service works well and I can access a SOAP message , which I can use for calling the third party method

Apache CXF , JAX-WS etc
Since the wsdl is not available , If I initialize the service class with the new wsdl end point or if I set the endpoint through the bindingProvider an exception is thrown due to which I cannot call the service.

Question
Since Axis 1.4 is old , there is a general opinion to stay away from it.

Axis 2 is good except for the AxisMessage problem , Is there any way to access a SoapMessage in the handlers that I add to Axis. The handlers that I am able to add are only Axis2 handlers

In CXF and JAX-WS I am able to add the generic handlers in which I have a SoapMessage , but they fail when the service class is initialized or set with BindingProvider

Any Suggestion
Thanks
Charlie

Jeenson Ephraim
  • 551
  • 2
  • 9
  • 24

1 Answers1

0

In Axis2, AxisMessage doesn't represent the current message. Instead it represents a wsdl:message element, i.e. it is part of the service description. To get to the SOAP message, retrieve the SOAPEnvelope from the MessageContext.

Andreas Veithen
  • 8,868
  • 3
  • 25
  • 28