hi,
I tested the MTOM with the Axis2 trunk with the following service
public String sendFile(DataHandler dataHandler){
try {
FileOutputStream fileOutputStream = new
FileOutputStream("/home/amila/ec2-bak.tgz");
dataHandler.writeTo(fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
System.out.println("finish writting");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "ok";
}
with the service.xml to deploy
<service name="MTOMService">
<schema schemaNamespace="http://org.apache.axis2/xsd"
elementFormDefaultQualified="false"/>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter
name="ServiceClass">test.lockhead.service.MTOMService</parameter>
</service>
Then I generate the code for this service with ADB and access it with the
following client
private void testMTOM(){
try {
MTOMServiceStub mtomServiceStub = new MTOMServiceStub("
http://localhost:8080/axis2/services/MTOMService.MTOMServiceHttpSoap12Endpoint/"
);
mtomServiceStub._getServiceClient().getOptions().setProperty(Constants.Configuration.ENABLE_MTOM,
Constants.VALUE_TRUE);
DataSource dataSource = new
FileDataSource("/home/amila/ec2.tgz");
DataHandler dataHandler = new DataHandler(dataSource);
mtomServiceStub.sendFile(dataHandler);
} catch (AxisFault axisFault) {
axisFault.printStackTrace();
} catch (java.rmi.RemoteException e) {
e.printStackTrace();
}
}
every thing worked fine. Then I went the command prompt and compare the
sizes of the files
am...@amila:~$ ls -all ec2-bak.tgz ec2.tgz
-rw-r--r-- 1 amila amila 1990 2009-09-01 17:39 ec2-bak.tgz
-rw-r--r-- 1 amila amila 2864 2009-09-01 17:28 ec2.tgz
am...@amila:~$ tar -xvf ec2-bak.tgz
gzip: stdin: invalid compressed data--format violated
tar: Child returned status 1
tar: Error exit delayed from previous errors
so file has not transfered correctly.
Now if I switch off the MTOM by commenting that line
am...@amila:~$ ls -all ec2-bak.tgz ec2.tgz
-rw-r--r-- 1 amila amila 2864 2009-09-01 17:53 ec2-bak.tgz
-rw-r--r-- 1 amila amila 2864 2009-09-01 17:28 ec2.tgz
am...@amila:~$ tar -xvf ec2-bak.tgz
.ec2/
.ec2/accno
.ec2/cert-76TWWMUYTIAS5B7JK73C2FNCQ5R52CBO.pem
.ec2/debian_public_debian_etch_15Sep07-keypair
.ec2/pk-76TWWMUYTIAS5B7JK73C2FNCQ5R52CBO.pem
it works fine.
thanks,
Amila.
--
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/