Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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 org.apache.ode.tools.sendsoap.cline;
 
 
 import java.io.File;
 import java.net.URL;

Commandline tool to send the contents of a (binary) file to a URL.

 
 public class HttpSoapSender extends BaseCommandlineTool {
 
     private static final int RETURN_BAD_URL = 2;
     private static final int RETURN_SEND_ERROR = 3;
     private static final int RETURN_CANT_READ = 4;
     private static final int RETURN_CANT_WRITE = 5;
     private static final int RETURN_BAD_PORT = 6;
 
     private static Pattern SEQ = Pattern.compile("\\$sequence\\$");
 
     private static final ToolMessages MESSAGES = MessageBundle.getMessages(ToolMessages.class);
     private static final CommonMessages COMMON = MessageBundle.getMessages(CommonMessages.class);
 
     private static final Argument URL_A = new Argument("url","the URL to send the SOAP to.",false);
     private static final Argument FILE_A = new Argument("file","the file that contains the SOAP to send.",false);
 
     private static final FlagWithArgument PROXY_SERVER = new FlagWithArgument("s""proxyServer",
             "server to use for proxy authentication.",true);
     private static final FlagWithArgument PROXY_PORT = new FlagWithArgument("p""proxyPort",
             "port to use for proxy authentication.",true);
     private static final FlagWithArgument PROXY_USER = new FlagWithArgument("u""username",
             "username to use for proxy authentication.",true);
     private static final FlagWithArgument PROXY_PASS = new FlagWithArgument("w""password",
             "password to use for proxy authentication.",true);
     private static final FlagWithArgument SOAP_ACTION = new FlagWithArgument("a""soapAction",
             "SOAP action to include in the message header.",true);
     private static final FlagWithArgument OUTFILE_FWA = new FlagWithArgument("o","outfile",
             "a file to write the output to (instead of standard out).",true);
 
     private static final Fragments CLINE = new Fragments(new CommandlineFragment[] {
     });
 
     private static final String SYNOPSIS =
             "send the contents of a file to a URL as a SOAP request and print the response (if any) to the console or a file.";
 
     protected static String getProgramName() {
       return "sendsoap";
     }
 
     public static String doSend(URL uInputStream isString proxyServerint proxyPort,
                               String usernameString passwordString soapActionthrows IOException {
         ByteArrayOutputStream bos = new ByteArrayOutputStream(8192);
        StreamUtils.copy(bosis);
        String now = Long.toString(System.currentTimeMillis());
        int c = 1;
        String data = new String(bos.toByteArray());
        Matcher m = .matcher(data);
        StringBuffer sb = new StringBuffer(8192);
        while (m.find()) {
            m.appendReplacement(sbnow + "-" + c++);
        }
        m.appendTail(sb);
        SimpleHttpConnectionManager mgr = new SimpleHttpConnectionManager();  
        mgr.getParams().setConnectionTimeout(60000);
        mgr.getParams().setSoTimeout(60000);
        HttpClient httpClient = new HttpClient(mgr);
        PostMethod httpPostMethod = new PostMethod(u.toExternalForm());
        if (proxyServer != null && proxyServer.length() > 0) {
            httpClient.getState().setCredentials(new AuthScope(proxyServerproxyPort),
                    new UsernamePasswordCredentials(usernamepassword));
            httpPostMethod.setDoAuthentication(true);
        }
        if (soapAction == nullsoapAction = "";
        httpPostMethod.setRequestHeader("SOAPAction""\"" + soapAction + "\"");
        httpPostMethod.setRequestHeader("Content-Type""text/xml");
        httpPostMethod.setRequestEntity(new StringRequestEntity(sb.toString()));
        httpClient.executeMethod(httpPostMethod);
        return httpPostMethod.getResponseBodyAsString() + "\n";
    }
    public static void main(String[] argv) {
        if (argv.length == 0 || .matches(argv)) {
            ConsoleFormatter.printSynopsis(getProgramName(),,new Fragments[] {
                    ,});
            System.exit(0);
        } else if (!.matches(argv)) {
            consoleErr("INVALID COMMANDLINE: Try \"" + getProgramName() + " -h\" for help.");
            System.exit(-1);
        }
        File fout = null;
        if (.isSet()) {
            String outfile = .getValue();
            fout = new File(outfile);
        }
        URL u = null;
        try {
            u = new URL(.getValue());
        } catch (MalformedURLException mue) {
            consoleErr(.msgBadUrl(.getValue(),mue.getMessage()));
            System.exit();
        }
        InputStream is = null;
        String src = .getValue();
        if (src.equals("-")) {
            is = .;
        } else {
            File f = new File(src);
            try {
                is = new FileInputStream(f);
            } catch (FileNotFoundException fnfe) {
                consoleErr(.msgCannotReadFromFile(src));
                System.exit();
            }
        }
        boolean hasProxy = .getValue() != null && .getValue().length() > 0;
        if (hasProxy) {
            String proxyPort = .getValue();
            try {
                Integer.parseInt(proxyPort);
            } catch (NumberFormatException e) {
                consoleErr(.msgBadPort(proxyPort));
                System.exit();
            }
        }
        initLogging();
        try{
            String result = doSend(u,is.getValue(), hasProxy ? Integer.parseInt(.getValue()) : 0,
                    .getValue(), .getValue(), .getValue());
            if (.isSet()) {
                FileOutputStream fos = new FileOutputStream(fout);
                fos.write(result.getBytes());
                fos.close();
            } else ..println(result);
        } catch (IOException ioe) {
            consoleErr(.msgIoErrorOnSend(ioe.getMessage()));
            System.exit();
        }
    }
New to GrepCode? Check out our FAQ X