Re: Axis2 1.4 How to modify soap envelope attributes?
On Aug 8, 9:47 pm, "Mike Schilling" <mscottschill...@hotmail.com>
wrote:
zigzag...@yahoo.com wrote:
I was not using WSDL2JAVA. I was writing code from "scratch", that's
why I am asking this question.
OK, let's start at the beginning. Show us the code that generates the
request.
Mike:
Thanks a lot for looking into. Attached is the code. Please keep in
mind that I am new to AXIS2, started using it only 2 weeks ago, but I
like AXIOM. I just want to know how to add additional name spaces in
SOAP Enevlope at the beginning (refer to beginning of this Thread).
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import javax.xml.namespace.QName;
import java.util.*;
public class CallWebm {
private static EndpointReference targetEPR =
new EndpointReference(
"http://10.4.34.114:8888/soap/rpc/
PU023_QM_TrackWise_V1_TrackWise_to_S
AP_maps");
public static OMElement helloWorldPayload(String symbol) {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(
"http://
10.35.16.31/", "tns");
OMElement method = fac.createOMElement("TestRPC", omNs);
OMElement value = fac.createOMElement("Input1", omNs);
value.addChild(fac.createOMText(value, "test100"));
method.addChild(value);
try {
System.out.println(method.toStringWithConsume());
}
catch (javax.xml.stream.XMLStreamException e) {
e.printStackTrace();
}
return method;
}
public static void main(String[] args) {
try {
OMElement helloWorldPayload =
helloWorldPayload("test1234");
Options options = new Options();
System.out.println("getSoapVersionURI:" +
options.getSoapVersionURI());
options.setTo(targetEPR);
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
//options.setAction("urn:echo");
// some servers do not support chunking of HTTP 1.1, so
disable it
options.setProperty(org.apache.axis2.transport.http.HTTPConstants.HTTP_PROT=
OCOL_VERSION,
org.apache.axis2.transport.http.HTTPConstants.HEADER_PROTOCOL_10);
ServiceClient sender = new ServiceClient();
sender.addStringHeader (new QName("http://
www.apache.schema", "xsd"), "");
sender.setOptions(options);
//Thread.sleep(3000);
//sender.sendReceive(helloWorldPayload);
OMElement result = sender.sendReceive(helloWorldPayload);
} catch (Exception e) {
e.printStackTrace();
}
}
}