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">&lt;Person&gt;
                &lt;FirstName&gt;Smith&lt;/FirstName&gt;
                &lt;LastName&gt;John&lt;/LastName&gt;
                &lt;Person&gt;
                 </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