Thanks for the recommendation. Do you know where I could start reading about the Activation framework to get an idea what happens (and when) during the serialization/deserialization process?
Shawn. > -----Original Message----- > From: THOMAS, JAI [AG-Contractor/1000] [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 02, 2005 4:50 PM > To: '[email protected]' > 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: [email protected] > 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: '[email protected]' > > 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: [email protected] > > 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: [email protected] > > > 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: [email protected] > > > > 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: [email protected] > > > > 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:"not > > > > specified" +BINDInteraction.a.shortlabel:"Unknown") > > > > (+BINDInteraction.b.type:"not specified" > > > > +BINDInteraction.b.shortlabel:"Unknown"))</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? > > > > > > > > > > > > > > > > > > > >
