Martin Gainty
______________________________________________
_____ _ _____ _ _____ ___ _
_____ _ _ _ |_ _| |_ ___ | _ |___ ___
___| |_ ___ | __|___| _| |_ _ _ _ ___ ___ ___ | __|___ _ _ ___ _|
|___| |_|_|___ ___ | | | | -_| | | . | .'| _| | -_| |__ | . |
_| _| | | | .'| _| -_| | __| . | | | | . | .'| _| | . | | |_|
|_|_|___| |__|__| _|__,|___|_|_|___| |_____|___|_| |_| |_____|__,|_| |___|
|__| |___|___|_|_|___|__,|_| |_|___|_|_| |_|
________________________________
From: Martin Gainty <[email protected]>
Sent: Tuesday, November 15, 2016 6:46 AM
To: [email protected]; Sterpu Victor
Subject: Re: Re[4]: Raw SOAP XML response
if you dont have axis2.xml in server config do you have annotations defined in
server code?
http://www.ibm.com/developerworks/library/j-jws8/
Java Web services: JAXB and JAX-WS in
Axis2<http://www.ibm.com/developerworks/library/j-jws8/>
www.ibm.com
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?
http://localhost:8080/axis2-web/HappyAxis.jsp
MG>http://ServerHostName:ServerPortNumber/axis2/axis2-web/HappyAxis.jsp
Martin
______________________________________________
________________________________
From: Sterpu Victor <[email protected]>
Sent: Monday, November 14, 2016 4:58 PM
To: Martin Gainty; [email protected]
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" <[email protected]<mailto:[email protected]>>
To: "[email protected]"
<[email protected]<mailto:[email protected]>>; "Sterpu Victor"
<[email protected]<mailto:[email protected]>>
Sent: 2/11/2016 9:28:48 PM
Subject: Re: Re[2]: Raw SOAP XML response
________________________________
From: Sterpu Victor <[email protected]<mailto:[email protected]>>
Sent: Wednesday, November 2, 2016 11:57 AM
To: Martin Gainty; [email protected]<mailto:[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]<mailto:[email protected]>>
To: "[email protected]<mailto:[email protected]>"
<[email protected]<mailto:[email protected]>>; "Sterpu Victor"
<[email protected]<mailto:[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]<mailto:[email protected]>>
Sent: Wednesday, November 2, 2016 9:37 AM
To: [email protected]<mailto:[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