I've used a sample example service and a client to send a binary
attachment  to  a service from a client  from an  article i  found on the
web.
All this works fine in a Java environment.

In the same Java Service, the Service maps to a method in the service that
accepts a parameter of type OMElement.
Im supposed to send a PDF to a .NET service but i dont know how to submit it
to a method that is expecting a base64 attachment type.

Can someone point me in the right direction regarding the steps required to
do this.

Thanks.




*CLIENT*

public class TestClient extends

{

    private static final String EPR = "
http://localhost:8080/axis2/services/TestService";;
    private static final String INPUT_FILE = "C:\\HOLD\\small.pdf";
    public static void main(String[] args) throws Exception

    {
            System.out.println("In the TestClient Main Method");
            System.out.println("EPR: "+EPR);
            System.out.println("Input File Name: "+INPUT_FILE);
            TestServiceStub stub = new TestServiceStub(EPR);
            stub._getServiceClient().getOptions().setProperty(
Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);

stub._getServiceClient().getOptions().setTimeOutInMilliSeconds(10000);

            javax.activation.DataHandler dataHandler = new
javax.activation.DataHandler(new FileDataSource(INPUT_FILE));

            ReceiveMTOM rmtom = new ReceiveMTOM();
            OMFactory fac = OMAbstractFactory.getOMFactory();
            OMText binaryNode = fac.createOMText(dataHandler,true);
            OMNamespace omNs = fac.createOMNamespace("http://test.com";,
"ns0");
            OMElement method = fac.createOMElement("receiveMTOM", omNs);
            method.addChild(binaryNode);
            rmtom.setElement(method);
            stub.receiveMTOM(rmtom);
            System.out.println("done calling service...");

    }

}




*SERVICE:*

public class TestService

{
     private static org.apache.log4j.Logger log = Logger
        .getLogger(TestService.class);
    private static final String OUTPUT_FILE = "C:\\HOLD\\att.pdf";

    public void receiveMTOM(OMElement element) throws Exception

    {
        OMText binaryNode = (OMText) (element.getFirstElement
()).getFirstOMChild();
        binaryNode.setOptimize(true);
        DataHandler dh = (DataHandler) binaryNode.getDataHandler();
        InputStream is = dh.getInputStream();
        byte[] buf = readFully(is);
        writeOutput(buf);
        System.out.println("done writing output file.");

    }


}

Reply via email to