Re[4]: Raw SOAP XML response
"Sterpu Victor" <[email protected]>
| Newsgroups | gmane.text.xml.axis.user |
|---|---|
| Message-ID | <emdc6f7b77-dbc6-4372-9974-990f39cc0941@victor-pc> |
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" <[email protected]> To: "[email protected]" <[email protected]>; "Sterpu Victor" <[email protected]> Sent: 2/11/2016 9:28:48 PM Subject: Re: Re[2]: Raw SOAP XML response > > >-------------------------------------------------------------------------------- >From: Sterpu Victor <[email protected]> >Sent: Wednesday, November 2, 2016 11:57 AM >To: Martin Gainty; [email protected] >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" <[email protected]> >To: "[email protected]" <[email protected]>; "Sterpu >Victor" <[email protected]> >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 <[email protected]> >>Sent: Wednesday, November 2, 2016 9:37 AM >>To:[email protected] >>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 >> >>