________________________________ From: Sterpu Victor <vic...@caido.ro> Sent: Wednesday, November 2, 2016 11:57 AM To: Martin Gainty; 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" <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