Hi,
 
 I have a Java Program which returns a DynaBean Array
 to the callers. To deploy this as WebService I had
 to convert the DynaBean into the following to send it
 as DataHandler Object (pls suggest if there is a
better way).
 
 DynaBean[] db = (DynaBean[])newResults.toArray(new
 DynaBean[newResults.size()]);
                        
 ByteArrayOutputStream baos = new
 ByteArrayOutputStream(); 
                        
 ObjectOutputStream oos = new
 ObjectOutputStream(baos);
 oos.writeObject(db);
 oos.flush();
 oos.close();
 
 //InputStream bais = new
 ByteArrayInputStream(baos.toByteArray());
 
 InternetHeaders header = new InternetHeaders();
                    header.addHeader("Content-Type",
 "application/octet-stream");
 
 mbp = new MimeBodyPart(header, baos.toByteArray());
 DataHandler dh = new DataHandler(new
 MimePartDataSource(mbp));
 
 return dh;
 
 
 On the client side I am using the following code to
 read the result.
 
 DataHandler qr = (DataHandler)svc.executeQuery();
 DataSource ds = qr.getDataSource();
 MimeBodyPart mp = new
 MimeBodyPart(ds.getInputStream());
          
 InputStream oas = mp.getInputStream();
 ObjectInputStream ois = new ObjectInputStream(oas);
 Object db = ois.readObject();
 //I am expecting the above Object to be the
 DynaBean[]
 ois.close();
 
 I keep getting java.io.EOFException in the following
 line
 
 ObjectInputStream ois = new ObjectInputStream(oas);
 
 Not sure why. My main aim is to send the DynaBean[]
 back to the caller. I am using DynaBean since I
 don't know of any structure that can send results (it
 is a search utility). I am using AXIS 1.2.
 
 Thanks in advance,
 Pani
 
 
 
 

Reply via email to