Are you now using DataHandler with URLDataSource? If mime type is the problem, 
you should be getting an exception in that regard. But from the exception below 
what I am getting is your message is not formed properly. It could happen if 
the url stream is not accessible or terminated unexpectedly.

Jai


-----Original Message-----
From: Shawn Konopinsky [mailto:[EMAIL PROTECTED]
Sent: Friday, March 04, 2005 1:55 PM
To: axis-user@ws.apache.org
Subject: RE: Dime Attachments


Thanks again for the response Jai...

The export(out) service is available as a URL (ie. by requesting via HTTP,
it will stream out to the socket). But for some reason I keep on getting the
following error:

   [java]  faultNode:
     [java]  faultDetail:
     [java]
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException:
Premature end of file.
     [java]     at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseEx
ception(ErrorHandlerWrapper.java:236)
     [java]     at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Error
HandlerWrapper.java:215)

Could this be because the content type of the information coming back from
the request is "application/download"? Would that throw off the
URLDataSource when it tried to read the information in?

Shawn.

> -----Original Message-----
> From: THOMAS, JAI [AG-Contractor/1000] [mailto:[EMAIL PROTECTED]
> Sent: Thursday, March 03, 2005 5:54 PM
> To: 'axis-user@ws.apache.org'
> Subject: RE: Dime Attachments
>
>
> What DataHandlers do is provide an interface to data available in
> various 'data sources' and
> it doesn't look like you are using it for the right reasons. If
> the export() function that your are using is available as a url,
> you can use a url datasource and that should take care of your problem.
> If none of these are possible, then you should think of some
> other mechanism such as plain byte array. My suggestion would
> still be to use temp files. Writing to a file and deleting it may
> not be as bad as you think. In fact we are using this mechanism
> to send dynamically generated reports  as dime attachments.
>
> Jai
>
>
> -----Original Message-----
> From: Shawn Konopinsky [mailto:[EMAIL PROTECTED]
> Sent: Thursday, March 03, 2005 4:24 PM
> To: axis-user@ws.apache.org
> Subject: RE: Dime Attachments
>
>
> Sorry for the multiple emails.. Just to be clear, the "easy" solution
> doesn't really work for us because we need to stream the data across the
> wire. Sometimes we can have attachments that are gigs in size, so
> we need to
> stream them into the output stream passed into the writeTo method.
>
> Shawn.
>
> > -----Original Message-----
> > From: THOMAS, JAI [AG-Contractor/1000] [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, March 02, 2005 4:50 PM
> > To: 'axis-user@ws.apache.org'
> > Subject: RE: Dime Attachments
> >
> >
> > I doubt what is happening on server side in your case is the following
> >    - deserialize datahandler using
> > JAFDataHandlerDeserializerFactory since that
> >      is the standard type mapping for DataHandler.
> >
> >    - JAFDataHandlerDeserializerFactory creates a standard
> > DataHandler which invokes
> >      the standard writeTo() which asks for input stream. And you
> > know what happens next.
> >
> > I can think of two solutions:
> >   simple: on client side, store the output of
> > 'export(OutputStream out)' to a file and
> >           create datahandler using "new DataHandler(new
> > FileDataSource(file))"
> >
> >   harder: Implement your own serializer/deserializer factory to
> > create your 'own' datahandler
> >   and register type mapping using that.
> >
> > Hope it helps.
> >
> > Jai
> >
> >
> >
> > -----Original Message-----
> > From: Shawn Konopinsky [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, March 02, 2005 3:27 PM
> > To: axis-user@ws.apache.org
> > Subject: RE: Dime Attachments
> >
> >
> > I would if I could :) Perhaps if I explain, you could offer a
> > suggest on how
> > to do this.
> >
> > The information that is to become the attachment comes from an
> > already built
> > part of our system. Essentially we have an object called
> InformationSource
> > which contains all the information we need for the reply. This object
> > already has a function "export(OutputStream out)" which takes an
> > OutputStream and pumps all the formatted information into it.
> >
> > To build this structure into the Axis architecture, we created a
> > InfoDataHandler which contains an instance of our InformationSource. The
> > InfoDataHandler also has a NullDataSource which contains the
> get/sets for
> > the ContentType and Name. However, we throw exceptions when a request is
> > made for the InputStream or OutputStream from the NullDataSource
> > (obviously
> > because none exist). The logic is that the InfoDataHandler has an
> > over-written writeTo(OutputStream) method that essentially just
> > calls on our
> > InformationSource's export(OutputStream) method.
> >
> > Obviously the Dime attachment code needs the InputStream from the
> > DataSource. Any idea how we might work with our existing code,
> yet provide
> > the requirements to get Dime functional?
> >
> > Shawn.
> >
> > > -----Original Message-----
> > > From: THOMAS, JAI [AG-Contractor/1000]
> [mailto:[EMAIL PROTECTED]
> > > Sent: Wednesday, March 02, 2005 4:06 PM
> > > To: 'axis-user@ws.apache.org'
> > > Subject: RE: Dime Attachments
> > >
> > >
> > > Axis maight not be using your datahandler implementation during
> > > deserialization.
> > > Why don't you try using standard datahandler with a valid
> > > datasource and see if that
> > > fixes your problem?
> > >
> > > Jai
> > >
> > > -----Original Message-----
> > > From: Shawn Konopinsky [mailto:[EMAIL PROTECTED]
> > > Sent: Wednesday, March 02, 2005 2:57 PM
> > > To: axis-user@ws.apache.org
> > > Subject: RE: Dime Attachments
> > >
> > >
> > > It would seem as if Dime is requesting a InputStream from the
> > > DataSource in
> > > my DataHandler. I'm using a "NullDataSource" object which just a place
> > > holder, and my DataHandler is an extension of the DataHandler
> > > object with an
> > > over-written writeTo(..) method. This allows me to get the
> > information for
> > > the writeTo from another source.
> > >
> > > Why would Dime require an InputStream from the DataSource?
> > >
> > > Shawn.
> > >
> > > > -----Original Message-----
> > > > From: Shawn Konopinsky [mailto:[EMAIL PROTECTED]
> > > > Sent: Wednesday, March 02, 2005 3:41 PM
> > > > To: axis-user@ws.apache.org
> > > > Subject: RE: Dime Attachments
> > > >
> > > >
> > > > Has anyone seen this error before:
> > > >
> > > >      [java]  faultString: java.io.IOException: DIME header
> > less than 12
> > > > bytes.
> > > >      [java]  faultActor:
> > > >      [java]  faultNode:
> > > >      [java]  faultDetail:
> > > >      [java]
> > > > {http://xml.apache.org/axis/}stackTrace:java.io.IOException:
> > > > DIME header less than 12 bytes.
> > > >      [java]     at
> > > > org.apache.axis.attachments.DimeDelimitedInputStream.readHeader(Di
> > > > meDelimite
> > > > dInputStream.java:319)
> > > >
> > > > Not too sure what could be causing this.
> > > >
> > > > Shawn.
> > > >
> > > > > -----Original Message-----
> > > > > From: Flores, Raul [mailto:[EMAIL PROTECTED]
> > > > > Sent: Monday, February 28, 2005 5:16 PM
> > > > > To: axis-user@ws.apache.org
> > > > > Subject: RE: Dime Attachments
> > > > >
> > > > >
> > > > >
> > > > > I used the following test code to return various size
> files formated
> > > > > DIME from a server, and it worked (lookes like what you
> have). If I
> > > > > remember correctly, looking at messages via TCPMonitor, the
> > > message with
> > > > > DIME looks bizarro (as compared to MIME). So if you are
> saying that
> > > > > things do not work because of the message format (as
> listed below);
> > > > > possibly things are working?
> > > > >
> > > > >
> > > > > Raul
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >  public com.lmtas.swa.services.DimResData
> > > > > getDime(com.lmtas.swa.services.DimReqData parameters) throws
> > > > > java.rmi.RemoteException {
> > > > >
> > > > >         DimResData drd = new DimResData("Your file is
> > > attached DIME ");
> > > > >         MessageContext msgContext =
> > > MessageContext.getCurrentContext();
> > > > >         Message msg = msgContext.getResponseMessage();
> > > > >
> > > > > msg.getAttachmentsImpl().setSendType(Attachments.SEND_TYPE_DIME);
> > > > >         AttachmentPart part = new AttachmentPart(new
> DataHandler(new
> > > > > FileDataSource("c:/java/testFile.txt")));
> > > > >         part.setContentId("testFile.txt");
> > > > >         msg.addAttachmentPart(part);
> > > > >         // 2.5M
> > > > >         part = new AttachmentPart(new DataHandler(new
> > > > > FileDataSource("C:/Documents and Settings/My
> > > > > Documents/Understanding_Web_Services_Security.pdf")));
> > > > >
> > part.setContentId("Understanding_Web_Services_Security.pdf");
> > > > >         msg.addAttachmentPart(part);
> > > > >         // 15M
> > > > >         // part = new AttachmentPart(new DataHandler(new
> > > > > FileDataSource("C:/Documents and Settings/My Documents/My
> > > > > Downloads/axis-1_2beta3-src.zip")));
> > > > >         // 410M
> > > > >         // part = new AttachmentPart(new DataHandler(new
> > > > > FileDataSource("C:/Documents and Settings/My
> > > > > Documents/en_office_2003_pro.iso")));
> > > > >
> > > > >         return drd;
> > > > >     }
> > > > >
> > > > > -----Original Message-----
> > > > > From: Shawn Konopinsky [mailto:[EMAIL PROTECTED]
> > > > > Sent: Monday, February 28, 2005 3:26 PM
> > > > > To: axis-user@ws.apache.org
> > > > > Subject: Dime Attachments
> > > > >
> > > > > I have what seems to be a problem with send DIME
> > attachments in SOAP.
> > > > >
> > > > > Mime works just fine for me when I use the following to
> set the send
> > > > > type:
> > > > >
> reply.getAttachmentsImpl().setSendType(Attachments.SEND_TYPE_MIME).
> > > > >
> > > > > However, when I make the simple modification to the line
> > above to use
> > > > > DIME as the send type (replace Attachments.SEND_TYPE_MIME with
> > > > > Attachments.SEND_TYPE_DIME), it doesn't work.
> > > > >
> > > > > Is there anything additional that I have to do aside from
> > setting the
> > > > > attachment type to DIME to switch between a MIME and DIME
> attachment
> > > > > type?
> > > > >
> > > > > I am viewing the request/response through Axis' TCP Tunnel
> > > viewer. When
> > > > > I run through a request with DIME, the response from the
> > server looks
> > > > > like
> > > > > this:
> > > > > ------------------------
> > > > > HTTP/1.1 200 OK
> > > > > Set-Cookie: JSESSIONID=754354ADC18D3D950CEACF80F0191805;
> Path=/bind
> > > > > Content-Type: application/dime;charset=utf-8
> > > > > Date: Mon, 28 Feb 2005 20:50:51 GMT
> > > > > Server: Apache-Coyote/1.1
> > > > > Connection: close
> > > > >
> > > > > > > > > >  "xsd:int">1</totalRecordsFound>
> > > > >    <records xsi:type="xsd:string">see attachment</records>
> > > > >    <query
> xsi:type="xsd:string">(+(+RecordType:(interaction complex
> > > > > pathway ) +(gi:(4757840 )))) -((+BINDInteraction.a.type:&quot;not
> > > > > specified&quot; +BINDInteraction.a.shortlabel:&quot;Unknown&quot;)
> > > > > (+BINDInteraction.b.type:&quot;not specified&quot;
> > > > > +BINDInteraction.b.shortlabel:&quot;Unknown&quot;))</query>
> > > > >    <returnType xsi:type="xsd:string">xml</returnType>
> > > > >   </multiRef>
> > > > >  </soapenv:Body>
> > > > > </soapenv:Envelope>
> > > > > ------------------------
> > > > >
> > > > > As you can see it seems as if the response is malformed.
> Not sure if
> > > > > this is a result of the problem, or something wrong with the
> > > proxy that
> > > > > I am using to view the response. It is stumping me because
> > MIME works
> > > > > fine, and DIME give me the weird result above. No exceptions
> > > seem to be
> > > > > thrown from the SOAP server.
> > > > >
> > > > > Has anyone else had a problem like this or know how I might
> > > troubleshoot
> > > > > it?
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>

Reply via email to