You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by David Gilbert <dg...@cragmonttech.com> on 2003/02/07 20:02:48 UTC

a bug or missing information/documentation? deserializing beans within an array in a bean

I had originally submitted this question/issue to the axis-users and tried a
couple of ideas, but didn't find a working answer and wonder if this might
be an issue with the 1.1 beta release.  I am running with Tomcat 4.1.18.
Others have indicated this should be possible.

The problem I am hitting is that I can't get Axis to deserialize a bean that
is in an array within another bean.  I am trying to return a Catalog class
that has an array of Products.  Here is the error:

- Exception: org.xml.sax.SAXException: No deserializer defined for array
type {urn:regisproject.util}Product 	at
org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDeseriali
zer.java:254) 	at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
:428) 	at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
tionContextImpl.java:925) 	at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
693) 	at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
:404) 	at
org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.
java:167) 	at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
tionContextImpl.java:925) 	at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
693) 	at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:299) 	at
org.apache.axis.message.RPCElement.getParams(RPCElement.java:323) 	at
org.apache.axis.client.Call.invoke(Call.java:2082) 	at
org.apache.axis.client.Call.invoke(Call.java:1986) 	at
org.apache.axis.client.Call.invoke(Call.java:1509) 	at
regisproject.serviceclient.ProductServiceClient.getCatalog(ProductServiceCli
ent.java:112) 	at
regisproject.serviceclient.ProductServiceClient.main(ProductServiceClient.ja
va:155) org.xml.sax.SAXException: No deserializer defined for array type
{urn:regisproject.util}Product

I have other methods using the same service that return a bean with arrays
of strings and doubles, and another method that returns a single Product
without any problem.  

Is there anything required by Axis to indicate the relationship between the
Catalog class and the Product class, or should Axis just deserialize objects
whenever it finds them based on the beanMappings of each bean independently?

Here is the wsdd used to deploy:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <service name="ProductDbHelper" provider="java:RPC">
  <parameter name="className"
value="regisproject.database.ProductDbHelper"/>
  <parameter name="allowedMethods"
value="test,getProduct,getCatalog,getCatalog2"/>
  <beanMapping qname="myNS:Product" 
            xmlns:myNS="urn:regisproject.util"
languageSpecificType="java:regisproject.util.Product"/>
  <beanMapping qname="myNS:Catalog" 
            xmlns:myNS="urn:regisproject.util"
languageSpecificType="java:regisproject.util.Catalog"/>
  <beanMapping qname="myNS:Catalog2" 
            xmlns:myNS="urn:regisproject.util"
languageSpecificType="java:regisproject.util.Catalog2"/>
 </service>
</deployment>

Attached is the SOAP message from TCPMon.

 
Here is the call set-up:
  public Catalog getCatalog() throws Exception
  {
    Catalog catalog = null;

    Service  service = new Service();
    Call     call    = (Call) service.createCall();
    QName    qn      = new QName( "ProductDbHelper", "getCatalog" );
    QName    retQn   = new QName( "urn:regisproject.util", "Catalog" );

    call.registerTypeMapping(Catalog.class, retQn,
                  new
org.apache.axis.encoding.ser.BeanSerializerFactory(Catalog.class, retQn),
                  new
org.apache.axis.encoding.ser.BeanDeserializerFactory(Catalog.class, retQn));

    try
    {
      call.setTargetEndpointAddress( new java.net.URL(endpoint) );
      call.setOperationName(qn);

      //call.addParameter( "arg1",
org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN);
      call.setReturnType( retQn, Catalog.class );

      catalog = (Catalog) call.invoke( new Object[] { } );
    }
    catch (Exception e)
    {
      System.err.println(e.toString());
    }

    return catalog;
  }//end getCatalog()


Let me know if any other info would be useful - or if I am just doing
something wrong.  If something needs to be documented on how to deserialize
arrays like this I would volunteer to do so, but would need to understand it
first :).

Thanks!

-----------------------------
David Gilbert
303.517.1297
Cragmont Technologies
Java, Siebel, and Database Design Services
www.cragmonttech.com


RE: a bug or missing information/documentation? deserializing beans within an array in a bean

Posted by David Gilbert <dg...@cragmonttech.com>.
Someone sent me one more thing to try to fix this.  If it is still a problem
I will post a new bug report as soon as I can.

Thanks,

David

-----Original Message-----
From: Davanum Srinivas [mailto:dims@yahoo.com]
Sent: Friday, February 07, 2003 1:04 PM
To: axis-dev@ws.apache.org
Subject: Re: a bug or missing information/documentation? deserializing
beans within an array in a bean


s/Buzilla/Bugzilla. It's at http://nagoya.apache.org/bugzilla/index.html.

Thanks,
dims

--- Davanum Srinivas <di...@yahoo.com> wrote:
> David,
>
> Can you please post a stripped down sample that we can use to recreate the
problem? Or at least
> the product and catalog java classes?
>
> FYI, We need to get RC1 done quickly...Please add a new bug report to
Buzilla ASAP.
>
> Thanks,
> dims
>
> --- David Gilbert <dg...@cragmonttech.com> wrote:
> > I had originally submitted this question/issue to the axis-users and
tried a
> > couple of ideas, but didn't find a working answer and wonder if this
might
> > be an issue with the 1.1 beta release.  I am running with Tomcat 4.1.18.
> > Others have indicated this should be possible.
> >
> > The problem I am hitting is that I can't get Axis to deserialize a bean
that
> > is in an array within another bean.  I am trying to return a Catalog
class
> > that has an array of Products.  Here is the error:
> >
> > - Exception: org.xml.sax.SAXException: No deserializer defined for array
> > type {urn:regisproject.util}Product 	at
> >
org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDeseriali
> > zer.java:254) 	at
> >
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
> > :428) 	at
> >
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
> > tionContextImpl.java:925) 	at
> >
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
> > at
> >
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
> > 693) 	at
> >
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
> > :404) 	at
> >
org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.
> > java:167) 	at
> >
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
> > tionContextImpl.java:925) 	at
> >
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
> > at
> >
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
> > 693) 	at
> > org.apache.axis.message.RPCElement.deserialize(RPCElement.java:299) 	at
> > org.apache.axis.message.RPCElement.getParams(RPCElement.java:323) 	at
> > org.apache.axis.client.Call.invoke(Call.java:2082) 	at
> > org.apache.axis.client.Call.invoke(Call.java:1986) 	at
> > org.apache.axis.client.Call.invoke(Call.java:1509) 	at
> >
regisproject.serviceclient.ProductServiceClient.getCatalog(ProductServiceCli
> > ent.java:112) 	at
> >
regisproject.serviceclient.ProductServiceClient.main(ProductServiceClient.ja
> > va:155) org.xml.sax.SAXException: No deserializer defined for array type
> > {urn:regisproject.util}Product
> >
> > I have other methods using the same service that return a bean with
arrays
> > of strings and doubles, and another method that returns a single Product
> > without any problem.
> >
> > Is there anything required by Axis to indicate the relationship between
the
> > Catalog class and the Product class, or should Axis just deserialize
objects
> > whenever it finds them based on the beanMappings of each bean
independently?
> >
> > Here is the wsdd used to deploy:
> >
> > <deployment xmlns="http://xml.apache.org/axis/wsdd/"
> >             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> >  <service name="ProductDbHelper" provider="java:RPC">
> >   <parameter name="className"
> > value="regisproject.database.ProductDbHelper"/>
> >   <parameter name="allowedMethods"
> > value="test,getProduct,getCatalog,getCatalog2"/>
> >   <beanMapping qname="myNS:Product"
> >             xmlns:myNS="urn:regisproject.util"
> > languageSpecificType="java:regisproject.util.Product"/>
> >   <beanMapping qname="myNS:Catalog"
> >             xmlns:myNS="urn:regisproject.util"
> > languageSpecificType="java:regisproject.util.Catalog"/>
> >   <beanMapping qname="myNS:Catalog2"
> >             xmlns:myNS="urn:regisproject.util"
> > languageSpecificType="java:regisproject.util.Catalog2"/>
> >  </service>
> > </deployment>
> >
> > Attached is the SOAP message from TCPMon.
> >
> >
> > Here is the call set-up:
> >   public Catalog getCatalog() throws Exception
> >   {
> >     Catalog catalog = null;
> >
> >     Service  service = new Service();
> >     Call     call    = (Call) service.createCall();
> >     QName    qn      = new QName( "ProductDbHelper", "getCatalog" );
> >     QName    retQn   = new QName( "urn:regisproject.util", "Catalog" );
> >
> >     call.registerTypeMapping(Catalog.class, retQn,
> >                   new
> > org.apache.axis.encoding.ser.BeanSerializerFactory(Catalog.class,
retQn),
> >                   new
> > org.apache.axis.encoding.ser.BeanDeserializerFactory(Catalog.class,
retQn));
> >
> >     try
> >     {
> >       call.setTargetEndpointAddress( new java.net.URL(endpoint) );
> >       call.setOperationName(qn);
> >
> >       //call.addParameter( "arg1",
> > org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN);
> >       call.setReturnType( retQn, Catalog.class );
> >
> >       catalog = (Catalog) call.invoke( new Object[] { } );
> >     }
> >     catch (Exception e)
> >     {
> >       System.err.println(e.toString());
> >     }
> >
> >     return catalog;
> >   }//end getCatalog()
> >
> >
> > Let me know if any other info would be useful - or if I am just doing
> > something wrong.  If something needs to be documented on how to
deserialize
> > arrays like this I would volunteer to do so, but would need to
understand it
> > first :).
> >
> > Thanks!
> >
> > -----------------------------
> > David Gilbert
> > 303.517.1297
> > Cragmont Technologies
> > Java, Siebel, and Database Design Services
> > www.cragmonttech.com
> >
> >
>
> > ATTACHMENT part 2 application/ms-tnef name=winmail.dat
>
>
>
> =====
> Davanum Srinivas - http://webservices.apache.org/~dims/
>
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com


=====
Davanum Srinivas - http://webservices.apache.org/~dims/

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com


Re: a bug or missing information/documentation? deserializing beans within an array in a bean

Posted by Davanum Srinivas <di...@yahoo.com>.
s/Buzilla/Bugzilla. It's at http://nagoya.apache.org/bugzilla/index.html.

Thanks,
dims

--- Davanum Srinivas <di...@yahoo.com> wrote:
> David,
> 
> Can you please post a stripped down sample that we can use to recreate the problem? Or at least
> the product and catalog java classes?
> 
> FYI, We need to get RC1 done quickly...Please add a new bug report to Buzilla ASAP.
> 
> Thanks,
> dims
> 
> --- David Gilbert <dg...@cragmonttech.com> wrote:
> > I had originally submitted this question/issue to the axis-users and tried a
> > couple of ideas, but didn't find a working answer and wonder if this might
> > be an issue with the 1.1 beta release.  I am running with Tomcat 4.1.18.
> > Others have indicated this should be possible.
> > 
> > The problem I am hitting is that I can't get Axis to deserialize a bean that
> > is in an array within another bean.  I am trying to return a Catalog class
> > that has an array of Products.  Here is the error:
> > 
> > - Exception: org.xml.sax.SAXException: No deserializer defined for array
> > type {urn:regisproject.util}Product 	at
> > org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDeseriali
> > zer.java:254) 	at
> > org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
> > :428) 	at
> > org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
> > tionContextImpl.java:925) 	at
> > org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
> > at
> > org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
> > 693) 	at
> > org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
> > :404) 	at
> > org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.
> > java:167) 	at
> > org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
> > tionContextImpl.java:925) 	at
> > org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
> > at
> > org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
> > 693) 	at
> > org.apache.axis.message.RPCElement.deserialize(RPCElement.java:299) 	at
> > org.apache.axis.message.RPCElement.getParams(RPCElement.java:323) 	at
> > org.apache.axis.client.Call.invoke(Call.java:2082) 	at
> > org.apache.axis.client.Call.invoke(Call.java:1986) 	at
> > org.apache.axis.client.Call.invoke(Call.java:1509) 	at
> > regisproject.serviceclient.ProductServiceClient.getCatalog(ProductServiceCli
> > ent.java:112) 	at
> > regisproject.serviceclient.ProductServiceClient.main(ProductServiceClient.ja
> > va:155) org.xml.sax.SAXException: No deserializer defined for array type
> > {urn:regisproject.util}Product
> > 
> > I have other methods using the same service that return a bean with arrays
> > of strings and doubles, and another method that returns a single Product
> > without any problem.  
> > 
> > Is there anything required by Axis to indicate the relationship between the
> > Catalog class and the Product class, or should Axis just deserialize objects
> > whenever it finds them based on the beanMappings of each bean independently?
> > 
> > Here is the wsdd used to deploy:
> > 
> > <deployment xmlns="http://xml.apache.org/axis/wsdd/"
> >             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> >  <service name="ProductDbHelper" provider="java:RPC">
> >   <parameter name="className"
> > value="regisproject.database.ProductDbHelper"/>
> >   <parameter name="allowedMethods"
> > value="test,getProduct,getCatalog,getCatalog2"/>
> >   <beanMapping qname="myNS:Product" 
> >             xmlns:myNS="urn:regisproject.util"
> > languageSpecificType="java:regisproject.util.Product"/>
> >   <beanMapping qname="myNS:Catalog" 
> >             xmlns:myNS="urn:regisproject.util"
> > languageSpecificType="java:regisproject.util.Catalog"/>
> >   <beanMapping qname="myNS:Catalog2" 
> >             xmlns:myNS="urn:regisproject.util"
> > languageSpecificType="java:regisproject.util.Catalog2"/>
> >  </service>
> > </deployment>
> > 
> > Attached is the SOAP message from TCPMon.
> > 
> >  
> > Here is the call set-up:
> >   public Catalog getCatalog() throws Exception
> >   {
> >     Catalog catalog = null;
> > 
> >     Service  service = new Service();
> >     Call     call    = (Call) service.createCall();
> >     QName    qn      = new QName( "ProductDbHelper", "getCatalog" );
> >     QName    retQn   = new QName( "urn:regisproject.util", "Catalog" );
> > 
> >     call.registerTypeMapping(Catalog.class, retQn,
> >                   new
> > org.apache.axis.encoding.ser.BeanSerializerFactory(Catalog.class, retQn),
> >                   new
> > org.apache.axis.encoding.ser.BeanDeserializerFactory(Catalog.class, retQn));
> > 
> >     try
> >     {
> >       call.setTargetEndpointAddress( new java.net.URL(endpoint) );
> >       call.setOperationName(qn);
> > 
> >       //call.addParameter( "arg1",
> > org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN);
> >       call.setReturnType( retQn, Catalog.class );
> > 
> >       catalog = (Catalog) call.invoke( new Object[] { } );
> >     }
> >     catch (Exception e)
> >     {
> >       System.err.println(e.toString());
> >     }
> > 
> >     return catalog;
> >   }//end getCatalog()
> > 
> > 
> > Let me know if any other info would be useful - or if I am just doing
> > something wrong.  If something needs to be documented on how to deserialize
> > arrays like this I would volunteer to do so, but would need to understand it
> > first :).
> > 
> > Thanks!
> > 
> > -----------------------------
> > David Gilbert
> > 303.517.1297
> > Cragmont Technologies
> > Java, Siebel, and Database Design Services
> > www.cragmonttech.com
> > 
> > 
> 
> > ATTACHMENT part 2 application/ms-tnef name=winmail.dat
> 
> 
> 
> =====
> Davanum Srinivas - http://webservices.apache.org/~dims/
> 
> __________________________________________________
> Do you Yahoo!?
> Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
> http://mailplus.yahoo.com


=====
Davanum Srinivas - http://webservices.apache.org/~dims/

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

Re: a bug or missing information/documentation? deserializing beans within an array in a bean

Posted by Davanum Srinivas <di...@yahoo.com>.
David,

Can you please post a stripped down sample that we can use to recreate the problem? Or at least
the product and catalog java classes?

FYI, We need to get RC1 done quickly...Please add a new bug report to Buzilla ASAP.

Thanks,
dims

--- David Gilbert <dg...@cragmonttech.com> wrote:
> I had originally submitted this question/issue to the axis-users and tried a
> couple of ideas, but didn't find a working answer and wonder if this might
> be an issue with the 1.1 beta release.  I am running with Tomcat 4.1.18.
> Others have indicated this should be possible.
> 
> The problem I am hitting is that I can't get Axis to deserialize a bean that
> is in an array within another bean.  I am trying to return a Catalog class
> that has an array of Products.  Here is the error:
> 
> - Exception: org.xml.sax.SAXException: No deserializer defined for array
> type {urn:regisproject.util}Product 	at
> org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDeseriali
> zer.java:254) 	at
> org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
> :428) 	at
> org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
> tionContextImpl.java:925) 	at
> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
> at
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
> 693) 	at
> org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
> :404) 	at
> org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.
> java:167) 	at
> org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
> tionContextImpl.java:925) 	at
> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:200)
> at
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
> 693) 	at
> org.apache.axis.message.RPCElement.deserialize(RPCElement.java:299) 	at
> org.apache.axis.message.RPCElement.getParams(RPCElement.java:323) 	at
> org.apache.axis.client.Call.invoke(Call.java:2082) 	at
> org.apache.axis.client.Call.invoke(Call.java:1986) 	at
> org.apache.axis.client.Call.invoke(Call.java:1509) 	at
> regisproject.serviceclient.ProductServiceClient.getCatalog(ProductServiceCli
> ent.java:112) 	at
> regisproject.serviceclient.ProductServiceClient.main(ProductServiceClient.ja
> va:155) org.xml.sax.SAXException: No deserializer defined for array type
> {urn:regisproject.util}Product
> 
> I have other methods using the same service that return a bean with arrays
> of strings and doubles, and another method that returns a single Product
> without any problem.  
> 
> Is there anything required by Axis to indicate the relationship between the
> Catalog class and the Product class, or should Axis just deserialize objects
> whenever it finds them based on the beanMappings of each bean independently?
> 
> Here is the wsdd used to deploy:
> 
> <deployment xmlns="http://xml.apache.org/axis/wsdd/"
>             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
>  <service name="ProductDbHelper" provider="java:RPC">
>   <parameter name="className"
> value="regisproject.database.ProductDbHelper"/>
>   <parameter name="allowedMethods"
> value="test,getProduct,getCatalog,getCatalog2"/>
>   <beanMapping qname="myNS:Product" 
>             xmlns:myNS="urn:regisproject.util"
> languageSpecificType="java:regisproject.util.Product"/>
>   <beanMapping qname="myNS:Catalog" 
>             xmlns:myNS="urn:regisproject.util"
> languageSpecificType="java:regisproject.util.Catalog"/>
>   <beanMapping qname="myNS:Catalog2" 
>             xmlns:myNS="urn:regisproject.util"
> languageSpecificType="java:regisproject.util.Catalog2"/>
>  </service>
> </deployment>
> 
> Attached is the SOAP message from TCPMon.
> 
>  
> Here is the call set-up:
>   public Catalog getCatalog() throws Exception
>   {
>     Catalog catalog = null;
> 
>     Service  service = new Service();
>     Call     call    = (Call) service.createCall();
>     QName    qn      = new QName( "ProductDbHelper", "getCatalog" );
>     QName    retQn   = new QName( "urn:regisproject.util", "Catalog" );
> 
>     call.registerTypeMapping(Catalog.class, retQn,
>                   new
> org.apache.axis.encoding.ser.BeanSerializerFactory(Catalog.class, retQn),
>                   new
> org.apache.axis.encoding.ser.BeanDeserializerFactory(Catalog.class, retQn));
> 
>     try
>     {
>       call.setTargetEndpointAddress( new java.net.URL(endpoint) );
>       call.setOperationName(qn);
> 
>       //call.addParameter( "arg1",
> org.apache.axis.encoding.XMLType.XSD_STRING, ParameterMode.IN);
>       call.setReturnType( retQn, Catalog.class );
> 
>       catalog = (Catalog) call.invoke( new Object[] { } );
>     }
>     catch (Exception e)
>     {
>       System.err.println(e.toString());
>     }
> 
>     return catalog;
>   }//end getCatalog()
> 
> 
> Let me know if any other info would be useful - or if I am just doing
> something wrong.  If something needs to be documented on how to deserialize
> arrays like this I would volunteer to do so, but would need to understand it
> first :).
> 
> Thanks!
> 
> -----------------------------
> David Gilbert
> 303.517.1297
> Cragmont Technologies
> Java, Siebel, and Database Design Services
> www.cragmonttech.com
> 
> 

> ATTACHMENT part 2 application/ms-tnef name=winmail.dat



=====
Davanum Srinivas - http://webservices.apache.org/~dims/

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com