axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Gainty <>
Subject Re: Re[4]: Raw SOAP XML response
Date Tue, 15 Nov 2016 11:46:09 GMT
if you dont have axis2.xml in server config do you have annotations defined in server code?

Java Web services: JAXB and JAX-WS in Axis2<>
Apache Axis2 supports a range of data-binding technologies, including the official Java standard,
JAXB 2.x. Axis2 also supports the Java standard for Web service configuration, JAX-WS 2.x,
as an alternative to its own custom configuration technique. Dennis Sosnoski continues his
Java Web services column series by demonstrating how you can use each of these Java standards
with Axis2 and discussing some of the limitations of Axis2's current support for them.

do you have a Axis2 Server fully operational.. what does Axis Happiness page say?



From: Sterpu Victor <>
Sent: Monday, November 14, 2016 4:58 PM
To: Martin Gainty;
Subject: Re[4]: Raw SOAP XML response

I tired your code but I got a problem. This is what I wrote(I don't have a axis2.xml file,
I just create the stub with wsdl2java and used the class):
ConfigurationContext configContext = ConfigurationContextFactory.createDefaultConfigurationContext();
ServiceClient sender = new ServiceClient(configContext, null);
OperationClient mepClient = sender.createClient(ServiceClient.ANON_OUT_IN_OP);
MessageContext response=mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
String response_xml = response.getEnvelope().toString();

These lines are executed immediatly after the succesful SOAP call and I receive a java.lang.NullPointerException
at the line "String response_xml = response.getEnvelope().toString();".
I traced the SOAP response with Fiddler and the answer is "<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:dlwmin="" xmlns:xsi=""><return></return></dlwmin:storeClinicalDocumentSResponse></soapenv:Body></soapenv:Envelope>"

Thank you.

------ Original Message ------
From: "Martin Gainty" <<>>
To: "" <<>>;
"Sterpu Victor" <<>>
Sent: 2/11/2016 9:28:48 PM
Subject: Re: Re[2]: Raw SOAP XML response

From: Sterpu Victor <<>>
Sent: Wednesday, November 2, 2016 11:57 AM
To: Martin Gainty;<>
Subject: Re[2]: Raw SOAP XML response

It didn't work.
This is what I did: I deleted from the directory of Axis2\lib 4 files: axiom-jaxb-1.2.19.jar,
axiom-api-1.2.19.jar, axiom-dom-1.2.19.jar, axiom-impl-1.2.19.jar
and I added these 4 files: axiom-api-1.2.20.jar,axiom-dom-1.2.20.jar,axiom-impl-1.2.20.jar,axiom-jaxb-1.2.20.jar.
I use Axis embeded so I also deleted from my netbeans libraries the old jars and added the
new ones.
I recompiled and the error remained.

------ Original Message ------
From: "Martin Gainty" <<>>
To: "<>" <<>>;
"Sterpu Victor" <<>>
Sent: 2/11/2016 4:58:09 PM
Subject: Re: Raw SOAP XML response

possible outdated version of axiom

     * In Axiom versions prior to 1.2.9, the sequence of events was inconsistent if the
     * underlying stream is XOP encoded and caching is disabled (see WSCOMMONS-485).
     * This made it necessary for the caller to (partially) handle the XOP processing and
to use
     * {@link OMAttachmentAccessor#getDataHandler(String)} to retrieve the binary content.
     * Starting with 1.2.9 this is no longer be the case: as specified above,
     * the sequence of events is *independent of the state of the object model*
     * and the value of the <code>cache</code> parameter,
     * and ALL binary content is reported through the
     * {@link org.apache.axiom.ext.stax.datahandler.DataHandlerReader} (embedded in axiom-api)

upgrade axiom to 1.2.9 a recompile, package, deploy and run with 1.2.9 should mitigate the
error you are now receiving

*please keep us apprised*


From: Sterpu Victor <<>>
Sent: Wednesday, November 2, 2016 9:37 AM
Subject: Raw SOAP XML response


I need to save the raw SOAP XML response from Axis2(I use axis 2 1.7.3).
When Axis2 call retusrns an error this code works:
String response = sc.getLastOperationContext().getMessageContext("In").getEnvelope().toString();

MG>//build configurationContext from location of repo and name of axis2.xml
MG> ConfigurationContext configContext = ConfigurationContextFactory
.createConfigurationContextFromFileSystem("../../repository",  //exact location of repository
"axis2.xml");                           //exact filename of axis2.xml

MG>establish new ServiceClient implementing attributes from ConfigurationContext
MG> ServiceClient sender = new ServiceClient(configContext, null);

MG>you will need to supply a QName for incoming request and SOAP response output
     * Operation name used for an anonymous in-out operation (meaning we sent a message and
     * a response, equivalent to a WSDL In-Out operation).

    public static final QName ANON_OUT_IN_OP = new QName(Constants.AXIS2_NAMESPACE_URI,
MG>OperationClient mepClient = sender.createClient(ServiceClient.ANON_OUT_IN_OP);

MG>ask client to contact axis2 server and pull a response back
MG>MessageContext response=mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE));
     *MESSAGE_LABEL_IN_VALUE Constant to represent the message label "In" which is used by
     * following WSDL 2.0 defined MEPs: In-Only, Robust In-Only, In-Out, //Hint: In-Out is
your Message Exchange
     * In-Optional-Out, Out-In, Out-Optional-In.
    public static final byte MESSAGE_LABEL_IN = 0;
    public static final String MESSAGE_LABEL_IN_VALUE = "In";

MG>convert soapEnvelope to String
MG>String response =response.getEnvelope().toString();

But when I run a succesful Axis2 call the same code gives the following error: "java.lang.IllegalStateException:
Can't process next node because caching is disabled"

I tryed to enable cache like this, but it didn't work:

                                ServiceClient sc = (ServiceClient)method_getServiceClient.invoke(objectReflect);
                                ServiceContext srv_context = sc.getServiceContext();
                                OperationContext oc= new OperationContext();

Thank you

View raw message