Package sample.mtom.client

Source Code of sample.mtom.client.Client

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package sample.mtom.client;

import java.io.File;
import java.io.FileNotFoundException;
import java.rmi.RemoteException;
import java.util.List;
import java.util.Map;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;

import org.apache.axis2.Constants;
import org.apache.axis2.util.CommandLineOption;
import org.apache.axis2.util.CommandLineOptionParser;
import org.apache.axis2.util.OptionsValidator;
import org.apache.ws.axis2.mtomsample.MTOMSampleMTOMSampleSOAP11Port_httpStub;


public class Client {

  /**
   * @param args
   * @throws Exception
   */
  public static void main(String[] args) throws Exception {
    CommandLineOptionParser optionsParser = new CommandLineOptionParser(
        args);
    List invalidOptionsList = optionsParser
        .getInvalidOptions(new OptionsValidator() {
          public boolean isInvalid(CommandLineOption option) {
            String optionType = option.getOptionType();
            return !("dest".equalsIgnoreCase(optionType) || "file"
                .equalsIgnoreCase(optionType));
          }
        });

    if ((invalidOptionsList.size() > 0) || (args.length != 4)) {
      // printUsage();
      System.out.println("Invalid Parameters.");
      return;
    }

    Map optionsMap = optionsParser.getAllOptions();

    CommandLineOption fileOption = (CommandLineOption) optionsMap
        .get("file");
    CommandLineOption destinationOption = (CommandLineOption) optionsMap
        .get("dest");
    File file = new File(fileOption.getOptionValue());
    if (file.exists())
      transferFile(file, destinationOption.getOptionValue());
    else
      throw new FileNotFoundException();
  }

  public static void transferFile(File file, String destination)
      throws RemoteException {
    // uncomment the following if you need to capture the messages from
    // TCPMON. Please look at http://ws.apache.org/commons/tcpmon/tcpmontutorial.html
    // to learn how to setup tcpmon
    MTOMSampleMTOMSampleSOAP11Port_httpStub serviceStub = new MTOMSampleMTOMSampleSOAP11Port_httpStub(
        //"http://localhost:8081/axis2/rest/MTOMSample"
    );

    // Enable MTOM in the client side
    serviceStub._getServiceClient().getOptions().setProperty(
        Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
    //Increase the time out when sending large attachments
    serviceStub._getServiceClient().getOptions().setTimeOutInMilliSeconds(10000);

    // Uncomment and fill the following if you want to have client side file
    // caching switched ON.
    /*
     * serviceStub._getServiceClient().getOptions().setProperty(
     * Constants.Configuration.CACHE_ATTACHMENTS, Constants.VALUE_TRUE);
     * serviceStub._getServiceClient().getOptions().setProperty(
     * Constants.Configuration.ATTACHMENT_TEMP_DIR, "your temp dir");
     * serviceStub._getServiceClient().getOptions().setProperty(
     * Constants.Configuration.FILE_SIZE_THRESHOLD, "4000");
     */

    // Populating the code generated beans
    MTOMSampleMTOMSampleSOAP11Port_httpStub.AttachmentRequest attachmentRequest = new MTOMSampleMTOMSampleSOAP11Port_httpStub.AttachmentRequest();
    MTOMSampleMTOMSampleSOAP11Port_httpStub.AttachmentType attachmentType = new MTOMSampleMTOMSampleSOAP11Port_httpStub.AttachmentType();
    MTOMSampleMTOMSampleSOAP11Port_httpStub.Base64Binary base64Binary = new MTOMSampleMTOMSampleSOAP11Port_httpStub.Base64Binary();

    // Creating a javax.activation.FileDataSource from the input file.
    FileDataSource fileDataSource = new FileDataSource(file);

    // Create a dataHandler using the fileDataSource. Any implementation of
    // javax.activation.DataSource interface can fit here.
    DataHandler dataHandler = new DataHandler(fileDataSource);
    base64Binary.setBase64Binary(dataHandler);
        MTOMSampleMTOMSampleSOAP11Port_httpStub.ContentType_type0 param = new MTOMSampleMTOMSampleSOAP11Port_httpStub.ContentType_type0();
        param.setContentType_type0(dataHandler.getContentType());
        base64Binary.setContentType(param);
    attachmentType.setBinaryData(base64Binary);
    attachmentType.setFileName(destination);
    attachmentRequest.setAttachmentRequest(attachmentType);

    MTOMSampleMTOMSampleSOAP11Port_httpStub.AttachmentResponse response = serviceStub.attachment(attachmentRequest);
    System.out.println(response.getAttachmentResponse());
  }

}
TOP

Related Classes of sample.mtom.client.Client

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.