From: Sterpu Victor [mailto:vic...@caido.ro]
Sent: Monday, November 14, 2016 3:59 PM
To: Martin Gainty <mgai...@hotmail.com>; java-user@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" <mgai...@hotmail.com<mailto:mgai...@hotmail.com>>
To: "java-user@axis.apache.org<mailto:java-user@axis.apache.org>" 
<java-user@axis.apache.org<mailto:java-user@axis.apache.org>>; "Sterpu Victor" 
<vic...@caido.ro<mailto:vic...@caido.ro>>
Sent: 2/11/2016 9:28:48 PM
Subject: Re: Re[2]: Raw SOAP XML response


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


Reply via email to