how sent soap request with parameter to server via java -
i need send next soap request on server:
<callengestate xmlns="http://app.test.com/ws/schema"> <number>0008</number> <previousstate>stopped</previousstate> <currentstate>activated</currentstate> <datechanged>2014-06-09</datechanged> </callengestate >
i know how via soap ui, need via java. in soap ui specify additional parameter, here screenshot:
i have found in google , tried following:
package com.oberthur.tests.util; import javax.xml.soap.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; public class soapclientsaaj { /** * starting point saaj - soap client testing */ public static void main(string args[]) { seek { // create soap connection soapconnectionfactory soapconnectionfactory = soapconnectionfactory.newinstance(); soapconnection soapconnection = soapconnectionfactory.createconnection(); // send soap message soap server string url = "myserver"; soapmessage soapresponse = soapconnection.call(createsoaprequest(), url); // process soap response printsoapresponse(soapresponse); soapconnection.close(); } grab (exception e) { system.err.println("error occurred while sending soap request server"); e.printstacktrace(); } } private static soapmessage createsoaprequest() throws exception { messagefactory messagefactory = messagefactory.newinstance(); soapmessage soapmessage = messagefactory.createmessage(); soappart soappart = soapmessage.getsoappart(); // soap envelope soapenvelope envelope = soappart.getenvelope(); soapbody soapbody = envelope.getbody(); soapelement soapbodyelem = soapbody.addchildelement("callengestate"); soapelement soapbodyelem1 = soapbodyelem.addchildelement("number"); soapbodyelem1.addtextnode("00008"); soapelement soapbodyelem2 = soapbodyelem.addchildelement("previousstate"); soapbodyelem2.addtextnode("stoped"); soapelement soapbodyelem3 = soapbodyelem.addchildelement("currentstate"); soapbodyelem3.addtextnode("activated"); soapelement soapbodyelem4 = soapbodyelem.addchildelement("datechanged"); soapbodyelem4.addtextnode("2014-06-09"); soapmessage.savechanges(); /* print request message */ system.out.print("request soap message = "); soapmessage.writeto(system.out); system.out.println(); homecoming soapmessage; } /** * method used print soap response */ private static void printsoapresponse(soapmessage soapresponse) throws exception { transformerfactory transformerfactory = transformerfactory.newinstance(); transformer transformer = transformerfactory.newtransformer(); source sourcecontent = soapresponse.getsoappart().getcontent(); system.out.print("\nresponse soap message = "); streamresult result = new streamresult(system.out); transformer.transform(sourcecontent, result); } }
but don't know how set in code parameter , got next error:
response soap message = [fatal error] :2:6: processing instruction target matching "[xx][mm][ll]" not allowed. error occurred while sending soap request server
java soap
No comments:
Post a Comment