Discussion:
unsubscribe
Dinshaw, Afshad
2016-11-14 22:04:31 UTC
Permalink
From: Sterpu Victor [mailto:***@caido.ro]
Sent: Monday, November 14, 2016 3:59 PM
To: Martin Gainty <***@hotmail.com>; java-***@axis.apache.org
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:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><dlwmin:storeClinicalDocumentSResponse xmlns:dlwmin="core.des.uti.ro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><return></return></dlwmin:storeClinicalDocumentSResponse></soapenv:Body></soapenv:Envelope>"

Thank you.

------ Original Message ------
From: "Martin Gainty" <***@hotmail.com<mailto:***@hotmail.com>>
To: "java-***@axis.apache.org<mailto:java-***@axis.apache.org>" <java-***@axis.apache.org<mailto:java-***@axis.apache.org>>; "Sterpu Victor" <***@caido.ro<mailto:***@caido.ro>>
Sent: 2/11/2016 9:28:48 PM
Subject: Re: Re[2]: Raw SOAP XML response


________________________________
From: Sterpu Victor <***@caido.ro<mailto:***@caido.ro>>
Sent: Wednesday, November 2, 2016 11:57 AM
To: Martin Gainty; java-***@axis.apache.org<mailto:java-***@axis.apache.org>
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" <***@hotmail.com<mailto:***@hotmail.com>>
To: "java-***@axis.apache.org<mailto:java-***@axis.apache.org>" <java-***@axis.apache.org<mailto:java-***@axis.apache.org>>; "Sterpu Victor" <***@caido.ro<mailto:***@caido.ro>>
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) extension.

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*

Martin
______________________________________________

________________________________
From: Sterpu Victor <***@caido.ro<mailto:***@caido.ro>>
Sent: Wednesday, November 2, 2016 9:37 AM
To: java-***@axis.apache.org<mailto:java-***@axis.apache.org>
Subject: Raw SOAP XML response

Hello

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 receive
* a response, equivalent to a WSDL In-Out operation).

public static final QName ANON_OUT_IN_OP = new QName(Constants.AXIS2_NAMESPACE_URI,
"anonOutInOp",
Constants.AXIS2_NAMESPACE_PREFIX);
*/
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 the
* 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();

MG>?
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();
srv_context.setCachingOperationContext(true);
OperationContext oc= new OperationContext();
oc.setComplete(true);
srv_context.setLastOperationContext(oc);

Thank you

Continue reading on narkive:
Loading...