<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Re: httprouter issues with GET/POST WADL Services and Web Routing
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/luke.samad">Luke Samad</a> in <i>JBoss ESB Development</i> - <a href="http://community.jboss.org/message/601696#601696">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>I found this post extremely useful and I managed this by writing a custom action. I figured it might help others. Thank you guys for the great start.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        <service category="Case" description="CRUD on docket" invmScope="GLOBAL" invmTransacted="true" name="Docket"></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            <listeners></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                <http-gateway name="httpDocket" payloadAs="STRING" urlPattern="client/docket/*"></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                    <property name="synchronousTimeout" value="150000" /></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                </http-gateway></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            </listeners></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            <actions mep="RequestResponse"></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                <action class="gov.usc.commons.soa.esb.actions.HttpRestProxyAction" name="DocketAction"></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                    <property name="endpointUrl" value="${client.docket.war.url}" /></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                    <property name="logDebug" value="${log.case}" /></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                </action></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            </actions></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        </service></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import java.util.HashMap;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import java.util.List;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import java.util.Map;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.log4j.Logger;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.jboss.soa.esb.actions.AbstractActionLifecycle;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.jboss.soa.esb.actions.ActionProcessingException;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.jboss.soa.esb.actions.BeanConfiguredAction;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.jboss.soa.esb.http.HttpHeader;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.jboss.soa.esb.http.HttpRequest;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.jboss.soa.esb.message.Message;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>public class HttpRestProxyAction extends AbstractActionLifecycle implements BeanConfiguredAction {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private static final Logger log = Logger.getLogger(HttpRestProxyAction.class);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private String endpointUrl;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private String logDebug;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private Boolean debug = Boolean.FALSE;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public Message process(Message message) throws ActionProcessingException {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        debug = (logDebug != null && logDebug.equalsIgnoreCase("true")) ? Boolean.TRUE : Boolean.FALSE;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        HttpRequest request = HttpRequest.getRequest(message);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String outputXml = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String inputXml = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        Object defaultLocation = message.getBody().get();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        if (defaultLocation != null && !defaultLocation.getClass().getSimpleName().equals("byte[]")) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.info("defaultLocation class type " + defaultLocation.getClass().getSimpleName());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            inputXml = (String) defaultLocation;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        if(debug && inputXml != null){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.info("#############################");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.info("Input XML >>>> \n"+inputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.info("#############################");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        HashMap<String, String> headers = populateHeaders(request.getHeaders());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        HashMap<String, String> params = populateParameters(request.getQueryParams());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        if (request.getMethod().equals("GET")) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if (!headers.isEmpty() && !params.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executeGet(endpointUrl, params, headers);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            } else if (headers.isEmpty() && !params.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executeGet(endpointUrl, params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            } else {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executeGet(endpointUrl);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        } else if (request.getMethod().equals("POST")) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if (!headers.isEmpty() && !params.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executePost(inputXml, endpointUrl, params, headers);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            } else if (headers.isEmpty() && !params.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executePost(inputXml, endpointUrl, params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            } else {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executePost(inputXml, endpointUrl);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        } else if (request.getMethod().equals("PUT")) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if (!headers.isEmpty() && !params.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executePut(inputXml, endpointUrl, params, headers);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            } else if (headers.isEmpty() && !params.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executePut(inputXml, endpointUrl, params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            } else {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executePut(inputXml, endpointUrl);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        } else if (request.getMethod().equals("DELETE")) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if (!headers.isEmpty() && !params.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executeDelete(endpointUrl, params, headers);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            } else if (headers.isEmpty() && !params.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executeDelete(endpointUrl, params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            } else {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                outputXml = HttpClientUtil.executeDelete(endpointUrl);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                message.getBody().add(outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        if(debug && outputXml != null){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.info("#############################");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.info("Output XML \n"+outputXml);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.info("#############################");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return message;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private HashMap<String, String> populateHeaders(List<HttpHeader> requestHeaders) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        HashMap<String, String> headers = new HashMap<String, String>();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        if (requestHeaders != null && !requestHeaders.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if (debug) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                log.debug("****************** Request Headers ******************");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            for (HttpHeader header : requestHeaders) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                    if (debug) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                        log.info("key: " + header.getName() + " " + "value: " + header.getValue());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                    headers.put(header.getName(), header.getValue());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return headers;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private HashMap<String, String> populateParameters(Map<String, String[]> requestParameters) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        HashMap<String, String> params = new HashMap<String, String>();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        if (requestParameters != null && !requestParameters.isEmpty()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if (debug) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                log.info("******************Request parameters ******************");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            for (String s : requestParameters.keySet()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                String[] value = requestParameters.get(s);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                if (debug) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                    log.info("key " + s + " " + "value " + value[0]);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                params.put(s, value[0]);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return params;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public void setEndpointUrl(String endpointUrl) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        this.endpointUrl = endpointUrl;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public void setLogDebug(String logDebug) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        this.logDebug = logDebug;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import java.io.InputStream;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import java.io.PrintWriter;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import java.io.StringWriter;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import java.util.HashMap;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.HttpClient;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.HttpMethod;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.NameValuePair;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.methods.DeleteMethod;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.methods.GetMethod;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.methods.PostMethod;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.methods.PutMethod;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.methods.StringRequestEntity;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.httpclient.util.URIUtil;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.commons.io.IOUtils;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>import org.apache.log4j.Logger;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>public class HttpClientUtil {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static final Logger log = Logger.getLogger(HttpClientUtil.class);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executeGet(String url){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP GET with no parameters and no headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xml = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        GetMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new GetMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            xml = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xml;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executeGet(String url, HashMap<String, String> parameters){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP GET with parameters and no headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xml = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        GetMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new GetMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(parameters!=null && parameters.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                NameValuePair[] params = buildQueryParameters(parameters); </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setQueryString(params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            xml = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xml;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executeGet(String url, HashMap<String, String> parameters, HashMap<String, String> headers ){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP GET with parameters and headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xml = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        GetMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new GetMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(parameters!=null && parameters.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                NameValuePair[] params = buildQueryParameters(parameters); </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setQueryString(params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(headers!=null && headers.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                setRequestHeaders(method, headers);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            xml = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xml;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executePut(String xml, String url){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP PUT with no parameters and no headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xmlReturn = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        PutMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new PutMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.setRequestEntity(new StringRequestEntity(xml, "application/xml", "UTF8"));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              InputStream updateResponse = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                xmlReturn = new String(IOUtils.toByteArray(updateResponse ), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xmlReturn;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executePut(String xml, String url, HashMap<String, String> parameters){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP PUT with parameters and no headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xmlReturn = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        PutMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new PutMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(parameters!=null && parameters.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                NameValuePair[] params = buildQueryParameters(parameters); </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                if(params!= null)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setQueryString(params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.setRequestEntity(new StringRequestEntity(xml, "application/xml", "UTF8"));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              InputStream updateResponse = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                xmlReturn = new String(IOUtils.toByteArray(updateResponse ), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xmlReturn;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executePut(String xml, String url, HashMap<String, String> parameters, HashMap<String, String> headers ){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP PUT with parameters and headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xmlReturn = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        PutMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new PutMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(parameters!=null && parameters.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                NameValuePair[] params = buildQueryParameters(parameters); </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                if(params!= null)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setQueryString(params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(headers!=null && headers.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                setRequestHeaders(method, headers);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.setRequestEntity(new StringRequestEntity(xml, "application/xml", "UTF8"));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              InputStream updateResponse = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                xmlReturn = new String(IOUtils.toByteArray(updateResponse ), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xmlReturn;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executePost(String xml, String url){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP POST with no parameters and no headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xmlReturn = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        PostMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new PostMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.setRequestEntity(new StringRequestEntity(xml, "application/xml", "UTF8"));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                xmlReturn = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xmlReturn;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executePost(String xml, String url,  HashMap<String, String> parameters){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP POST with parameters and no headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xmlReturn = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        PostMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new PostMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(parameters!=null && parameters.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                NameValuePair[] params = buildQueryParameters(parameters);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                if(params!= null)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setQueryString(params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.setRequestEntity(new StringRequestEntity(xml, "application/xml", "UTF8"));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                xmlReturn = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xmlReturn;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executePost(String xml, String url,  HashMap<String, String> parameters, HashMap<String, String> headers ){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP POST with parameters and headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xmlReturn = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        PostMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new PostMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(parameters!=null && parameters.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                NameValuePair[] params = buildQueryParameters(parameters);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                if(params!= null)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setQueryString(params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(headers!=null && headers.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                setRequestHeaders(method, headers);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.setRequestEntity(new StringRequestEntity(xml, "application/xml", "UTF8"));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                xmlReturn = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xmlReturn;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executeDelete(String url){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP DELETE with no parameters and no headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        DeleteMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xml = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new DeleteMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            xml = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xml;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executeDelete(String url, HashMap<String, String> parameters){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP DELETE with parameters and no headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xml = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        DeleteMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new DeleteMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(parameters!=null && parameters.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                NameValuePair[] params = buildQueryParameters(parameters); </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                if(params!= null)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setQueryString(params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            xml = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xml;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    public static String executeDelete(String url, HashMap<String, String> parameters, HashMap<String, String> headers ){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("entering HTTP DELETE with parameters and headers");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("URL >> "+url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        String xml = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        DeleteMethod method = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        try{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            HttpClient httpClient = new HttpClient();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method = new DeleteMethod(url);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(parameters!=null && parameters.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                NameValuePair[] params = buildQueryParameters(parameters); </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                if(params!= null)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setQueryString(params);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            if(headers!=null && headers.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                setRequestHeaders(method, headers);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            int httpStatusCode = httpClient.executeMethod(method);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              logHTTPStatusCode(httpStatusCode);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>              assert (httpStatusCode == 200 || httpStatusCode == 204) ;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            InputStream response = method.getResponseBodyAsStream();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            xml = new String(IOUtils.toByteArray(response), method.getResponseCharSet());</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }catch (Exception e) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            String exception = getExceptionStackTraceAsString(e);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            log.error(exception);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }finally{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            method.releaseConnection();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return xml;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private static void setRequestHeaders(HttpMethod method , HashMap<String, String> headers ){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info(" ************** headers ************** ");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        if(headers != null && headers.size() > 0){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            for(String s : headers.keySet()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                log.info("header="+s+" valkue="+headers.get(s));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                method.setRequestHeader(s, headers.get(s));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private static NameValuePair[] buildQueryParameters(HashMap<String, String> parameters ) throws Exception{</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info(" ************** parameters ************** ");</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        NameValuePair[] params = null;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        if (parameters != null) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            params = new NameValuePair[parameters.size()];</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            int i = 0;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            for (String s : parameters.keySet()) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                log.info("parameter="+s+" value="+parameters.get(s));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                params[i] = new NameValuePair(s, URIUtil.encodeQuery(parameters.get(s)));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>                i++;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>            }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        return params;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private static String getExceptionStackTraceAsString(Exception exception) {</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          StringWriter sw = new StringWriter();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          exception.printStackTrace(new PrintWriter(sw));</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          return sw.toString();</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    private static void logHTTPStatusCode(int code ){</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>        log.info("HTTP Status code is >> "+code);</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    }</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>}</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/601696#601696">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss ESB Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2032">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>