org.apache.axiom.attachments.ByteArrayDataSource

On 9/29/06, Paul Fremantle <[EMAIL PROTECTED]> wrote:
I did this by creating my own DataSource object too. Maybe if there is
a ByteArrayDataSource I didn't need to! On the other hand, coding a DS
of your own would help if you had a really big data set.... because
you might be able to avoid holding it all in memory at once.


public class MyDataSource implements javax.activation.DataSource {

                public String getContentType() {
                        return "image/jpeg";
                }

                public InputStream getInputStream() throws IOException {
                        ByteArrayInputStream bais = new 
ByteArrayInputStream(data);
                        return bais;
                }

                public String getName() {
                        return "test.jpg";
                }

                public OutputStream getOutputStream() throws IOException {
                        throw new UnsupportedOperationException();

                }
        }




On 9/29/06, Betsy Frey <[EMAIL PROTECTED]> wrote:
> One does not have to use an ImageDataSource or FileDataSource.  You can code 
your own DataSource, implementing javax.activation.DataSource.
>
> When receiving MTOM data, one gets a DataHandler from the OMText element, and 
one can get the input stream from that:
>
>   OMText data = (OMText) child.getFirstOMChild();
>   DataHandler dh = (DataHandler) data.getDataHandler();
>   InputStream istream = dh.getDataSource().getInputStream();
>
> An intermediate file may still be created.  This is because, when 
transferring binary data using MTOM, there is the issue that a very large amount 
of data could cause an OutOfMemoryError, without storing it on disk as it is being 
received.  One controls this by these configuration settings:
>
>   <parameter name="cacheAttachments" locked="false">true</parameter>
>   <parameter name="attachmentDIR" locked="false">temp directory</parameter>
>   <parameter name="sizeThreshold" locked="false">4000</parameter>
>
> Betsy
> ________________________________________
> From: scott ken [mailto:[EMAIL PROTECTED]
> Sent: Thursday, September 28, 2006 7:53 PM
> To: [email protected]
> Subject: Re: about Axis2's binary attachment
>
> Usually we will have an InputStream object. But I didn't make it work. I 
tried using a byte array as input.
> you can easily convert an InputStream to a byte array. After that, use 
ByteArrayDataSource.
>
>  // Build OMText to hold binary data
>  byte[] binaryBytes = ...;
>  ByteArrayDataSource dataSource = new ByteArrayDataSource(binaryBytes );
>  DataHandler expectedDH = new DataHandler(dataSource);
>  OMText textData = omFactory.createOMText(expectedDH, true);
>
> On 9/28/06, sam wang <[EMAIL PROTECTED]> wrote:
> Hi, there,
>
> I have a question about transferring binary attachment through Axis2. I want 
to transfer binary
> attachment from server side to client side. My question is that if I can 
attach any kind of binary
> data? from Axis2's api, I see there are only two datasource: file and image. 
theoritically, Axis2
> can transfer any kind of object because we can first serialize any object to 
disk, save it as a
> file, and then construct file datasource to attach into soap as binary 
attachment. but it will not
> be efficient. so my question is that if there is a way to attach the object 
(for example,
> CachedRowSet) to soap directly and return to client, instead of saving as 
file first. if it can,
> could anyone give me a java snippet?
>
> thank you very much!
> Sam
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> **********************************************************************
> This email and any files transmitted with it are confidential and
> intended solely for the use of the individual or entity to whom they
> are addressed. Any unauthorized review, use, disclosure or distribution is 
prohibited. If you are not the intended recipient, please contact the sender by 
reply e-mail and destroy all copies of the original message.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Davanum Srinivas : http://www.wso2.net (Oxygen for Web Service Developers)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to