Yes. Would say the same. But if you want to use Soap on every price so you dont know what times will come and you must be interoperable, I must say it is not possible to use ArrayLists! You can only use arrays and each element must be of the same type. because soap specifies this and java is using this specification. if it was not so, soap would have no sense! if the types in the array are no primitive datatypes but a dataype of your own, you need a deserializer rather serializer to register with the specified element namespace/name. So if the soap message is parsed it will use the specified deserializer to push the soap values into the java class values.

lg,
chris

Jay Glanville schrieb:
If your server and clients are both java, soap may not be the best communication protocol for you. I'd actually recommend a binary based protocol like RMI or Hessian/Burlap for such situations. Binary protocols perform better then text based ones. Generally, SOAP is great for interoperating between different platforms. If all the platforms are the same, then there's probably a better way. Just my 2 cents. JDG

    ------------------------------------------------------------------------
    *From:* Nayana Hegde [mailto:[EMAIL PROTECTED]
    *Sent:* Friday, February 03, 2006 8:35 AM
    *To:* [email protected]
    *Subject:* Re: ArrayList in Webservices

    Hi,
Our application has to support only java. Can anyone let me know
    what are the criteria to be satisfied If I have  to write a
    Serializer and Deserializer for ArrayList? Thanks for the same

On 2/3/06, *Anne Thomas Manes* <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:

        If you plan to support interoperability with any language
        other than Java (or even any SOAP engine other then Axis), you
        should not expose Java Collections through your WSDL
        interface. You should convert them to arrays.

        Anne


        On 2/3/06, *Nayana Hegde* <[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>> wrote:

            Hi,
The following is the class which I have exposed as a
            webservice.
public class Test {

             public ArrayList getArrayList(){
              ArrayList list = new ArrayList();
              TestObject obj = new TestObject();
              obj.setName("First");
              list.add(obj);
              TestObject obj1 = new TestObject();
              obj1.setName("Second");
              list.add(obj1);
              return list;
             }
             public HashMap getMap(){
              HashMap map = new HashMap();
              map.put("First","First");
              map.put("Second","First");
              return map;
             }
            }
Now when I access the method getArrayList in the client
            side it is getting resolved as an Object array instead of
            an ArrayList but when I access the getMap() it is getting
            resolved correctly. Can you let me know the reason for the
            above? Is there any configuration changes that have to be
            done for the above to work. 1.2beta3 1009 August 17 2004.
<service name="Test" provider="java:RPC">
                <parameter name="className" value="com.db.cc.Test"/>
<parameter name="allowedMethods" value="*"/> <parameter name="load-on-startup" value="true"/> <parameter name="activateOnStartup" value="true"/> <beanMapping languageSpecificType="java:
            com.db.cc.object.TestObject" qname="ns4:TestObject"
            xmlns:ns4="urn:object.cc.db.com <http://object.cc.db.com/>"/>
              </service>
Thanks and Regards,
            Nayana




Reply via email to