You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Michele Mazzucco <Mi...@ncl.ac.uk> on 2006/05/04 11:19:34 UTC
[Axis2] MTOM & binary content
Hi all,
the tutorial show how to send images with MTOM, but how can I send
binary files with MTOM (say .zip files)?
Thanks in advance,
Michele
Re: [Axis2] MTOM & binary content
Posted by Ajith Ranabahu <aj...@gmail.com>.
Hi,
What is required for the DataHandler is some sort of input soure. So
as long as you have a DataSource that represents the binary then you
are fine!
Here is a code sample for doing that
.... previous code
FileDataSource dataSource = new FileDataSource("yourfile.zip");
expectedDH = new DataHandler(dataSource);
OMText textData = fac.createOMText(expectedDH, true);
....
This should create a proper Datahandler for the OMText to attach the file
Ajith
On 5/4/06, Michele Mazzucco <Mi...@ncl.ac.uk> wrote:
> Hi Ajith,
>
> thanks for your reply. My questions, actually, is:
>
> In the MTOM sample application, the client has this metho
>
> private OMElement createEnvelope(String fileName) throws Exception {
>
> DataHandler expectedDH;
> OMFactory fac = OMAbstractFactory.getOMFactory();
> OMNamespace omNs = fac.createOMNamespace("http://localhost/my",
> "my");
>
> OMElement data = fac.createOMElement("mtomSample", omNs);
> OMElement image = fac.createOMElement("image", omNs);
> Image expectedImage;
> expectedImage = new ImageIO()
> .loadImage(new FileInputStream(inputFile));
>
> ImageDataSource dataSource = new ImageDataSource("test.jpg",
> expectedImage);
> expectedDH = new DataHandler(dataSource);
> OMText textData = fac.createOMText(expectedDH, true);
> image.addChild(textData);
>
> OMElement imageName = fac.createOMElement("fileName", omNs);
> if (fileName != null) {
> imageName.setText(fileName);
> }
> //OMElement wrap = fac.createOMElement("wrap",omNs);
> // data.addChild(image);
> data.addChild(imageName);
> data.addChild(image);
> //data.addChild(wrap);
> return data;
>
> }
>
>
> If I need to send something different from an image, what function
> should I call instead of
>
> Image expectedImage;
> expectedImage = new ImageIO().loadImage(new FileInputStream(inputFile));
> FileOutputStream imageOutStream = new FileOutputStream(fileName);
> new ImageIO().saveImage("image/jpeg", actualObject, imageOutStream);
>
> ?
>
>
> And on the server side, what function should I call instead of
>
> Image actualObject = new ImageIO().loadImage(actualDH.getDataSource()
> .getInputStream());
>
> ?
>
> Thanks,
> Michele
> Ajith Ranabahu wrote:
> > Hi,
> > As far as the content is concerned the zip file is a "binary" file
> > just like the image file. All you have to do is read the file through
> > a file input stream and then create a new DataSource using that
> > inputstream.
> >
> > Ajith
> >
> >
> > On 5/4/06, Michele Mazzucco <Mi...@ncl.ac.uk> wrote:
> >> Hi all,
> >>
> >> the tutorial show how to send images with MTOM, but how can I send
> >> binary files with MTOM (say .zip files)?
> >>
> >> Thanks in advance,
> >> Michele
> >>
> >
> >
> > --
> > Ajith Ranabahu
>
--
Ajith Ranabahu
Re: [Axis2] MTOM & binary content
Posted by Michele Mazzucco <Mi...@ncl.ac.uk>.
Hi Ajith,
thanks for your reply. My questions, actually, is:
In the MTOM sample application, the client has this metho
private OMElement createEnvelope(String fileName) throws Exception {
DataHandler expectedDH;
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://localhost/my",
"my");
OMElement data = fac.createOMElement("mtomSample", omNs);
OMElement image = fac.createOMElement("image", omNs);
Image expectedImage;
expectedImage = new ImageIO()
.loadImage(new FileInputStream(inputFile));
ImageDataSource dataSource = new ImageDataSource("test.jpg",
expectedImage);
expectedDH = new DataHandler(dataSource);
OMText textData = fac.createOMText(expectedDH, true);
image.addChild(textData);
OMElement imageName = fac.createOMElement("fileName", omNs);
if (fileName != null) {
imageName.setText(fileName);
}
//OMElement wrap = fac.createOMElement("wrap",omNs);
// data.addChild(image);
data.addChild(imageName);
data.addChild(image);
//data.addChild(wrap);
return data;
}
If I need to send something different from an image, what function
should I call instead of
Image expectedImage;
expectedImage = new ImageIO().loadImage(new FileInputStream(inputFile));
FileOutputStream imageOutStream = new FileOutputStream(fileName);
new ImageIO().saveImage("image/jpeg", actualObject, imageOutStream);
?
And on the server side, what function should I call instead of
Image actualObject = new ImageIO().loadImage(actualDH.getDataSource()
.getInputStream());
?
Thanks,
Michele
Ajith Ranabahu wrote:
> Hi,
> As far as the content is concerned the zip file is a "binary" file
> just like the image file. All you have to do is read the file through
> a file input stream and then create a new DataSource using that
> inputstream.
>
> Ajith
>
>
> On 5/4/06, Michele Mazzucco <Mi...@ncl.ac.uk> wrote:
>> Hi all,
>>
>> the tutorial show how to send images with MTOM, but how can I send
>> binary files with MTOM (say .zip files)?
>>
>> Thanks in advance,
>> Michele
>>
>
>
> --
> Ajith Ranabahu
Re: [Axis2] MTOM & binary content
Posted by Ajith Ranabahu <aj...@gmail.com>.
Hi,
As far as the content is concerned the zip file is a "binary" file
just like the image file. All you have to do is read the file through
a file input stream and then create a new DataSource using that
inputstream.
Ajith
On 5/4/06, Michele Mazzucco <Mi...@ncl.ac.uk> wrote:
> Hi all,
>
> the tutorial show how to send images with MTOM, but how can I send
> binary files with MTOM (say .zip files)?
>
> Thanks in advance,
> Michele
>
--
Ajith Ranabahu