Search in sources :

Example 1 with TestMtomService

use of org.apache.cxf.mime.TestMtomService in project cxf by apache.

the class Client method main.

public static void main(String[] args) throws Exception {
    if (args.length == 0) {
        System.out.println("Please specify the WSDL file.");
        System.exit(1);
    }
    URL wsdlURL;
    File wsdlFile = new File(args[0]);
    if (wsdlFile.exists()) {
        wsdlURL = wsdlFile.toURI().toURL();
    } else {
        wsdlURL = new URL(args[0]);
    }
    System.out.println(wsdlURL);
    TestMtomService tms = new TestMtomService(wsdlURL, SERVICE_NAME);
    TestMtomPortType port = (TestMtomPortType) tms.getPort(PORT_NAME, TestMtomPortType.class);
    Binding binding = ((BindingProvider) port).getBinding();
    ((SOAPBinding) binding).setMTOMEnabled(true);
    URL fileURL = Client.class.getResource("/me.bmp");
    File aFile = new File(new URI(fileURL.toString()));
    long fileSize = aFile.length();
    System.out.println("Filesize of me.bmp image is: " + fileSize);
    System.out.println("\nStarting MTOM Test using basic byte array:");
    Holder<String> name = new Holder<String>("Sam");
    Holder<byte[]> param = new Holder<byte[]>();
    param.value = new byte[(int) fileSize];
    InputStream in = fileURL.openStream();
    int len = in.read(param.value);
    while (len < fileSize) {
        len += in.read(param.value, len, (int) (fileSize - len));
    }
    System.out.println("--Sending the me.bmp image to server");
    System.out.println("--Sending a name value of " + name.value);
    port.testByteArray(name, param);
    System.out.println("--Received byte[] back from server, returned size is " + param.value.length);
    System.out.println("--Returned string value is " + name.value);
    Image image = ImageIO.read(new ByteArrayInputStream(param.value));
    System.out.println("--Loaded image from byte[] successfully, hashCode=" + image.hashCode());
    System.out.println("Successfully ran MTOM/byte array demo");
    System.out.println("\nStarting MTOM test with DataHandler:");
    name.value = "Bob";
    Holder<DataHandler> handler = new Holder<DataHandler>();
    handler.value = new DataHandler(fileURL);
    System.out.println("--Sending the me.bmp image to server");
    System.out.println("--Sending a name value of " + name.value);
    port.testDataHandler(name, handler);
    InputStream mtomIn = handler.value.getInputStream();
    fileSize = 0;
    for (int i = mtomIn.read(); i != -1; i = mtomIn.read()) {
        fileSize++;
    }
    System.out.println("--Received DataHandler back from server, " + "returned size is " + fileSize);
    System.out.println("--Returned string value is " + name.value);
    System.out.println("Successfully ran MTOM/DataHandler demo");
    System.exit(0);
}
Also used : Binding(javax.xml.ws.Binding) SOAPBinding(javax.xml.ws.soap.SOAPBinding) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) Holder(javax.xml.ws.Holder) SOAPBinding(javax.xml.ws.soap.SOAPBinding) BindingProvider(javax.xml.ws.BindingProvider) DataHandler(javax.activation.DataHandler) TestMtomPortType(org.apache.cxf.mime.TestMtomPortType) Image(java.awt.Image) TestMtomService(org.apache.cxf.mime.TestMtomService) URI(java.net.URI) URL(java.net.URL) ByteArrayInputStream(java.io.ByteArrayInputStream) File(java.io.File)

Aggregations

Image (java.awt.Image)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 File (java.io.File)1 InputStream (java.io.InputStream)1 URI (java.net.URI)1 URL (java.net.URL)1 DataHandler (javax.activation.DataHandler)1 Binding (javax.xml.ws.Binding)1 BindingProvider (javax.xml.ws.BindingProvider)1 Holder (javax.xml.ws.Holder)1 SOAPBinding (javax.xml.ws.soap.SOAPBinding)1 TestMtomPortType (org.apache.cxf.mime.TestMtomPortType)1 TestMtomService (org.apache.cxf.mime.TestMtomService)1