Re: URGENT:!!! Please help insert XML data in kSOAP envelope
KHOURY Shérine (Dr&T) <[email protected]> Thu, 30 Oct 2003 14:13:40 +0100
| Newsgroups | gmane.comp.java.enhydra.ksoap |
|---|---|
| Message-ID | <[email protected]> |
[email protected] <mailto:[email protected]> wrote: Hi i am using following code for inserting <agency> <name>..</name> <tel>..</tel> <email>..</email> <contacted>...</contacted> <contactPerson>...</contactPerson> </agency> on the receiving side (struts/servlet) i can successfully build a SOAPEnvelope.. SoapObject method = new SoapObject( "http://www.tgmm.com/agenciesdemo" <http://www.tgmm.com/agenciesdemo> , "agency"); method.addProperty("name", name); method.addProperty("tel", phone); method.addProperty("email", email); method.addProperty("contacted", contact); method.addProperty("contactperson",person); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapSerializationEnvelope.VER10); envelope.bodyOut = method; System.err.println("connecting to new endpoint..."); HttpTransport ht = new HttpTransport( "http://localhost:8080/struts/insert.do" <http://localhost:8080/struts/insert.do> );// http://services.xmethods.net/soap <http://services.xmethods.net/soap> "); ht.debug = true; try { ht.call( "http://localhost:8080/struts/insert.do" <http://localhost:8080/struts/insert.do> , envelope); } catch (Exception e) { e.printStackTrace(); } hope this helps... regards marco -----Original Message----- From: [email protected] <mailto:[email protected]> [ mailto:[email protected] <mailto:[email protected]> ]On Behalf Of ext KHOURY Shérine (Dr&T) Sent: 29 October, 2003 16:16 To: [email protected] <mailto:[email protected]> Subject: Ksoap: URGENT:!!! Please help insert XML data in kSOAP envelope Hi guys, I have to send an XML result looking like this <Person> <FirstName>Smith</FirstName> <LastName>John</LastName> </Person> inside a SOAP message using kSOAP. I'm proceding as follows: //result being a String containing the XML result response = new SoapObject( soapReq.getNamespace( ) , name + "Response" ); if ( result != null ) response.addProperty( "return", result ); } SoapEnvelope ResEnv = new SoapEnvelope(); // Puts the Soap response in the envelope's body ResEnv.setBody(response); The problem is that upon receipt of this Soap message, the contents of the SOAP envelope looks something like this: <SOAP-ENV:Envelope xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" <http://www.w3.org/2001/XMLSchema-instance> xmlns:xsd= "http://www.w3.org/2001/XMLSchema" <http://www.w3.org/2001/XMLSchema> xmlns:SOAP-ENC= "http://schemas.xmlsoap.org/soap/encoding/" <http://schemas.xmlsoap.org/soap/encoding/> xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/" <http://schemas.xmlsoap.org/soap/envelope/> > <SOAP-ENV:Body SOAP-ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/" <http://schemas.xmlsoap.org/soap/encoding/> > <findResponse xmlns="urn:sncf:profilekeeper:profilekeeper.ProfileKeeper" id="o0" SOAP-ENC:root="1"> <return xmlns="" xsi:type="xsd:string"><Person> <FirstName>Smith</FirstName> <LastName>John</LastName> <Person> </return> </findResponse> </SOAP-ENV:Body> Can anyone tell me how to avoid letting SoapObject assume all properties to be Strings? I'm in urgent need of help!! So I will appreciate any suggestions Hello Marco, Thanks for your help. But my problem is that in my case, the XML part that I need to add in the SOAP message does not have a standard structure. It's the answer returned by some query, so it's really dependant of that query. Therefore what you suggested does not exactly fit to what I want to do. Do you have any more ideas? Thanks anyway!! Shérine