Hi
I am devloping a one webservice and hosted TestEmployee as a web service i am using addEmployee as a web service method which take Employee as a parameter. My problem is that i am getting employee as null in my method.
I am preparing the
soap request in a
servlet please find below code for my my soap request:
SOAPPart sp = msg.getSOAPPart();
SOAPEnvelope env = sp.getEnvelope();
env.addNamespaceDeclaration("xsd","http://www.w3.org/2001/XMLSchema");
env.addNamespaceDeclaration("xsi","http://www.w3.org/2001/XMLSchema-instance");
env.addNamespaceDeclaration("enc","http://schemas.xmlsoap.org/soap/encoding/");
env.addNamespaceDeclaration("env","http://schemas.xmlsoap.org/soap/envelop/");
env.setEncodingStyle("http://schemas.xmlsoap.org/soap/encoding/");
SOAPBody bd = env.getBody();
Document document=getDocument(emp);
bd.addChildElement(env.createName("getEmployee","emp","http://localhost:8008/DocStyleWS/BO/Employee"));
bd.addDocument(document);
msg.saveChanges();
// View input
System.out.println("\n Soap request:\n");
msg.writeTo(System.out);
System.out.println();
return msg;
Once that code execute my soap request came like this:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:env="http://schemas.xmlsoap.org/soap/envelop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header/><SOAP-ENV:Body><emp:getEmployee xmlns:emp="http://localhost:8008/DocStyleWS/BO/Employee"/><employee><empId>26155</empId><empName>Harsh</empName></employee></SOAP-ENV:Body></SOAP-ENV:Envelope>
Below is the code how I call my webservice:
SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
SOAPConnection conn = scf.createConnection();
// Send
String urlval = "http://localhost:8008/DocStyleWS/services/TestEmployee";
// or /rcx-ws-rpc/rcx for my rpc/encoded web service
SOAPMessage rp = conn.call(msg, urlval);
// View the output
System.out.println("\nXML response\n");
// Create transformer
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
// Get reply content
Source sc = rp.getSOAPPart().getContent();
// Set output transformation
StreamResult result = new StreamResult(System.out);
tf.transform(sc, result);
System.out.println();
StreamResult fileResult = new StreamResult(new File("C:\\Harsh\\output.xml"));
tf.transform(sc, fileResult);
// Close connection
conn.close();
MY web service code look like this:
public String addEmployee(Employee emp){
System.out.println("In Add employee method");
empList.add(emp.getEmpId().intValue() ,emp);
System.out.println("Employee Added Sucessfully");
return "Emp Added";
}
I am getting the fault code in my soap response please find it below:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.userException</faultcode><faultstring>java.lang.NullPointerException</faultstring><detail><ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">PUNDT8X2KQ1S</ns1:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
Please help me as i already invest my 5 days to get this error resolve.
Thanks
Harsh