Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 47670 invoked from network); 13 Dec 2005 19:59:16 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 13 Dec 2005 19:59:16 -0000 Received: (qmail 34368 invoked by uid 500); 13 Dec 2005 19:59:15 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 34306 invoked by uid 500); 13 Dec 2005 19:59:14 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 34295 invoked by uid 500); 13 Dec 2005 19:59:14 -0000 Delivered-To: apmail-ws-axis2-cvs@ws.apache.org Received: (qmail 34291 invoked by uid 99); 13 Dec 2005 19:59:14 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Dec 2005 11:59:14 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 13 Dec 2005 11:59:13 -0800 Received: (qmail 47472 invoked by uid 65534); 13 Dec 2005 19:58:52 -0000 Message-ID: <20051213195852.47467.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r356596 - in /webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http: AbstractHTTPSender.java SOAPOverHTTPSender.java Date: Tue, 13 Dec 2005 19:58:51 -0000 To: axis2-cvs@ws.apache.org From: saminda@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: saminda Date: Tue Dec 13 11:58:50 2005 New Revision: 356596 URL: http://svn.apache.org/viewcvs?rev=356596&view=rev Log: TransportSenders have been updated to handle runtime proxy setting correctly. A bug in the system has been fixed. Now we have complete proxy support :). Test case is added Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?rev=356596&r1=356595&r2=356596&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original) +++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Tue Dec 13 11:58:50 2005 @@ -35,374 +35,386 @@ public abstract class AbstractHTTPSender { - protected boolean chuncked = false; + protected boolean chuncked = false; - protected String httpVersion = HTTPConstants.HEADER_PROTOCOL_11; + protected String httpVersion = HTTPConstants.HEADER_PROTOCOL_11; - protected Log log = LogFactory.getLog(getClass().getName()); + protected Log log = LogFactory.getLog(getClass().getName()); - protected HttpClient httpClient; + protected HttpClient httpClient; - int soTimeout = HTTPConstants.DEFAULT_SO_TIMEOUT; + int soTimeout = HTTPConstants.DEFAULT_SO_TIMEOUT; - int connectionTimeout = HTTPConstants.DEFAULT_CONNECTION_TIMEOUT; + int connectionTimeout = HTTPConstants.DEFAULT_CONNECTION_TIMEOUT; - protected static final String ANONYMOUS = "anonymous"; + protected static final String ANONYMOUS = "anonymous"; - protected OMOutputFormat format = new OMOutputFormat(); + protected OMOutputFormat format = new OMOutputFormat(); - /** - * proxydiscription - */ - protected TransportOutDescription proxyOutSetting = null; + /** + * proxydiscription + */ + protected TransportOutDescription proxyOutSetting = null; - protected static final String PROXY_HOST_NAME = "proxy_host"; + protected static final String PROXY_HOST_NAME = "proxy_host"; - protected static final String PROXY_PORT = "proxy_port"; + protected static final String PROXY_PORT = "proxy_port"; public void setFormat(OMOutputFormat format) { this.format = format; } public abstract void send(MessageContext msgContext, - OMElement dataout, URL url, String soapActionString) - throws MalformedURLException, AxisFault, IOException; + OMElement dataout, URL url, + String soapActionString) + throws MalformedURLException, AxisFault, IOException; + + /** + * This is used to get the dynamically set time out values from the + * message context. If the values are not available or invalid then + * teh default values or the values set by teh configuration will be used + * + * @param msgContext + */ + protected void getTimeoutValues(MessageContext msgContext) { + try { + // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the + // override the static config + Integer tempSoTimeoutProperty = (Integer) msgContext + .getProperty(HTTPConstants.SO_TIMEOUT); + Integer tempConnTimeoutProperty = (Integer) msgContext + .getProperty(HTTPConstants.CONNECTION_TIMEOUT); + + if (tempSoTimeoutProperty != null) { + soTimeout = tempSoTimeoutProperty.intValue(); + } + + if (tempConnTimeoutProperty != null) { + connectionTimeout = tempConnTimeoutProperty.intValue(); + } + } catch (NumberFormatException nfe) { + //If there's a problem log it and use the default values + log.error("Invalid timeout value format: not a number", nfe); + } + } + + /** + * getting host configuration to support standard http/s, proxy and NTLM support + */ + protected HostConfiguration getHostConfiguration(HttpClient client, + MessageContext msgCtx, + URL targetURL) + throws AxisFault { + boolean isHostProxy = isProxyListed(msgCtx); //list the proxy + int port = targetURL.getPort(); + if (port == -1) + port = 80; + // to see the host is a proxy and in the proxy list - available in axis2.xml + HostConfiguration config = new HostConfiguration(); + + if (!isHostProxy) { + config.setHost(targetURL.getHost(), port, targetURL.getProtocol()); + } else { + //proxy and NTLM configuration + this.configProxyAuthentication(client, proxyOutSetting, config, + msgCtx); + } + return config; + } - /** - * This is used to get the dynamically set time out values from the - * message context. If the values are not available or invalid then - * teh default values or the values set by teh configuration will be used - * - * @param msgContext - */ - protected void getTimeoutValues(MessageContext msgContext) { - try { - // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the - // override the static config - Integer tempSoTimeoutProperty = (Integer) msgContext - .getProperty(HTTPConstants.SO_TIMEOUT); - Integer tempConnTimeoutProperty = (Integer) msgContext - .getProperty(HTTPConstants.CONNECTION_TIMEOUT); - - if (tempSoTimeoutProperty != null) { - soTimeout = tempSoTimeoutProperty.intValue(); - } - - if (tempConnTimeoutProperty != null) { - connectionTimeout = tempConnTimeoutProperty.intValue(); - } - } catch (NumberFormatException nfe) { - //If there's a problem log it and use the default values - log.error("Invalid timeout value format: not a number", nfe); - } - } - - /** - * getting host configuration to support standard http/s, proxy and NTLM support - */ - protected HostConfiguration getHostConfiguration(HttpClient client, - MessageContext msgCtx, URL targetURL) throws AxisFault { - boolean isHostProxy = isProxyListed(msgCtx); //list the proxy - int port = targetURL.getPort(); - if (port == -1) - port = 80; - // to see the host is a proxy and in the proxy list - available in axis2.xml - HostConfiguration config = new HostConfiguration(); - - if (!isHostProxy) { - config.setHost(targetURL.getHost(), port, targetURL.getProtocol()); - } else { - //proxy and NTLM configuration - this.configProxyAuthentication(client, proxyOutSetting, config, - msgCtx); - } - return config; - } - - /** - * Helper method to Proxy and NTLM authentication - * - * @param client - * @param proxySetting - * @param config - */ - - protected void configProxyAuthentication(HttpClient client, - TransportOutDescription proxySetting, HostConfiguration config, - MessageContext msgCtx) throws AxisFault { - Parameter proxyParam = proxySetting.getParameter(HTTPConstants.PROXY); - String value = (String) proxyParam.getValue(); - String split[] = value.split(":"); - - //values being hard coded due best practise - String usrName = split[0]; - String domain = split[1]; - String passwd = split[2]; - // - Credentials proxyCred ; - - String proxyHostName = null; - int proxyPort = -1; - - if (proxyParam != null) { - OMElement proxyParamElement = proxyParam.getParameterElement(); - Iterator ite = proxyParamElement.getAllAttributes(); - while (ite.hasNext()) { - OMAttribute att = (OMAttribute) ite.next(); - if (att.getLocalName().equalsIgnoreCase(PROXY_HOST_NAME)) { - proxyHostName = att.getAttributeValue(); - } - if (att.getLocalName().equalsIgnoreCase(PROXY_PORT)) { - proxyPort = Integer.parseInt(att.getAttributeValue()); - } - } - } - - if (domain.equals("") || domain.equals(ANONYMOUS)) { - if (usrName.equals(ANONYMOUS) && passwd.equals(ANONYMOUS)) { - proxyCred = new UsernamePasswordCredentials("", ""); - } else { - proxyCred = new UsernamePasswordCredentials(usrName, passwd); //proxy - } - } else { - proxyCred = new NTCredentials(usrName, passwd, proxyHostName, - domain); //NTLM authentication with additionals prams - } - - HttpTransportProperties.ProxyProperties proxyProperties = (HttpTransportProperties.ProxyProperties) msgCtx - .getProperty(HTTPConstants.PROXY); - if (proxyProperties != null) { - if (proxyProperties.getProxyPort() != -1) { - proxyPort = proxyProperties.getProxyPort(); - } - if (proxyProperties.getProxyHostName().equals("") - || proxyProperties.getProxyHostName() != null) { - proxyHostName = proxyProperties.getProxyHostName(); - } else { - throw new AxisFault("Proxy Name is not valied"); - } - if (proxyProperties.getUserName().equals(ANONYMOUS) - || proxyProperties.getPassWord().equals(ANONYMOUS)) { - proxyCred = new UsernamePasswordCredentials("", ""); - } - } - client.getState().setProxyCredentials(AuthScope.ANY, proxyCred); - config.setProxy(proxyHostName, proxyPort); - } - - private boolean isProxyListed(MessageContext msgCtx) throws AxisFault { - boolean returnValue = false; - Parameter par = null; - proxyOutSetting = msgCtx.getConfigurationContext().getAxisConfiguration() - .getTransportOut(new QName(Constants.TRANSPORT_HTTP)); - if (proxyOutSetting != null) { - par = proxyOutSetting.getParameter(HTTPConstants.PROXY); - } - OMElement hostElement; - if (par != null) { - hostElement = par.getParameterElement(); - } else { - return returnValue; - } - - if (hostElement != null) { - Iterator ite = hostElement.getAllAttributes(); - while (ite.hasNext()) { - OMAttribute attribute = (OMAttribute) ite.next(); - if (attribute.getLocalName().equalsIgnoreCase(PROXY_HOST_NAME)) { - returnValue = true; - } - } - } + /** + * Helper method to Proxy and NTLM authentication + * + * @param client + * @param proxySetting + * @param config + */ + + protected void configProxyAuthentication(HttpClient client, + TransportOutDescription proxySetting, + HostConfiguration config, + MessageContext msgCtx) + throws AxisFault { + Parameter proxyParam = proxySetting.getParameter(HTTPConstants.PROXY); + String usrName = null; + String domain = null; + String passwd = null; + Credentials proxyCred = null; + + String proxyHostName = null; + int proxyPort = -1; + if (proxyParam != null) { + String value = (String) proxyParam.getValue(); + String split[] = value.split(":"); + + //values being hard coded due best practise + usrName = split[0]; + domain = split[1]; + passwd = split[2]; + // + + OMElement proxyParamElement = proxyParam.getParameterElement(); + Iterator ite = proxyParamElement.getAllAttributes(); + while (ite.hasNext()) { + OMAttribute att = (OMAttribute) ite.next(); + if (att.getLocalName().equalsIgnoreCase(PROXY_HOST_NAME)) { + proxyHostName = att.getAttributeValue(); + } + if (att.getLocalName().equalsIgnoreCase(PROXY_PORT)) { + proxyPort = Integer.parseInt(att.getAttributeValue()); + } + } + + + if (domain.equals("") || domain.equals(ANONYMOUS)) { + if (usrName.equals(ANONYMOUS) && passwd.equals(ANONYMOUS)) { + proxyCred = new UsernamePasswordCredentials("", ""); + } else { + proxyCred = new UsernamePasswordCredentials(usrName, + passwd); //proxy + } + } else { + proxyCred = new NTCredentials(usrName, passwd, proxyHostName, + domain); //NTLM authentication with additionals prams + } + } + + HttpTransportProperties.ProxyProperties proxyProperties = + (HttpTransportProperties.ProxyProperties) msgCtx + .getProperty(HTTPConstants.PROXY); + if (proxyProperties != null) { + if (proxyProperties.getProxyPort() != -1) { + proxyPort = proxyProperties.getProxyPort(); + } + if (!proxyProperties.getProxyHostName().equals("") + || proxyProperties.getProxyHostName() != null) { + proxyHostName = proxyProperties.getProxyHostName(); + } else { + throw new AxisFault("Proxy Name is not valid"); + } + if (proxyProperties.getUserName().equals(ANONYMOUS) + || proxyProperties.getPassWord().equals(ANONYMOUS)) { + proxyCred = new UsernamePasswordCredentials("", ""); + } + } + client.getState().setProxyCredentials(AuthScope.ANY, proxyCred); + config.setProxy(proxyHostName, proxyPort); + } + + private boolean isProxyListed(MessageContext msgCtx) throws AxisFault { + boolean returnValue = false; + Parameter par = null; + proxyOutSetting = + msgCtx.getConfigurationContext().getAxisConfiguration() + .getTransportOut(new QName(Constants.TRANSPORT_HTTP)); + if (proxyOutSetting != null) { + par = proxyOutSetting.getParameter(HTTPConstants.PROXY); + } + OMElement hostElement = null; + if (par != null) { + hostElement = par.getParameterElement(); + } + + if (hostElement != null) { + Iterator ite = hostElement.getAllAttributes(); + while (ite.hasNext()) { + OMAttribute attribute = (OMAttribute) ite.next(); + if (attribute.getLocalName().equalsIgnoreCase(PROXY_HOST_NAME)) + { + returnValue = true; + } + } + } HttpTransportProperties.ProxyProperties proxyProperties; - if ((proxyProperties = (HttpTransportProperties.ProxyProperties) msgCtx - .getProperty(HTTPConstants.PROXY)) != null) { - if (proxyProperties.getProxyHostName() != null) { - returnValue = true; - } - } - return returnValue; - } - - /** - * Collect the HTTP header information and set them in the message context - * - * @param method - * @param msgContext - */ - protected void obatainHTTPHeaderInformation(HttpMethodBase method, - MessageContext msgContext) { - Header header = method - .getResponseHeader(HTTPConstants.HEADER_CONTENT_TYPE); - if (header != null) { - HeaderElement[] headers = header.getElements(); - for (int i = 0; i < headers.length; i++) { - NameValuePair charsetEnc = headers[i] - .getParameterByName(HTTPConstants.CHAR_SET_ENCODING); - if (headers[i].getName().equalsIgnoreCase( - HTTPConstants.HEADER_ACCEPT_MULTIPART_RELATED)) { - OperationContext opContext = msgContext - .getOperationContext(); - if (opContext != null) { - opContext.setProperty( - HTTPConstants.MTOM_RECIVED_CONTENT_TYPE, header - .getValue()); - } - } else if (charsetEnc != null) { - - msgContext.setProperty( - MessageContext.CHARACTER_SET_ENCODING, charsetEnc - .getValue()); //change to the value, which is text/xml or application/xml+soap - } - } - } - } - - protected void processResponse(HttpMethodBase httpMethod, - MessageContext msgContext) throws IOException { - obatainHTTPHeaderInformation(httpMethod, msgContext); - InputStream in = httpMethod.getResponseBodyAsStream(); - if (in == null) { - throw new AxisFault(Messages.getMessage("canNotBeNull", - "InputStream")); - } - msgContext.getOperationContext().setProperty( - MessageContext.TRANSPORT_IN, in); - } - - public class AxisRequestEntity implements RequestEntity { - - private String charSetEnc; - - private OMElement element; - - private boolean chuncked; - - private byte[] bytes; - - private boolean doingMTOM = false; - - private String soapActionString; - - private MessageContext msgCtxt; - - public AxisRequestEntity(OMElement element, boolean chuncked, - MessageContext msgCtxt, String charSetEncoding, - String soapActionString) { - this.element = element; - this.chuncked = chuncked; - this.msgCtxt = msgCtxt; - this.doingMTOM = msgCtxt.isDoingMTOM(); - this.charSetEnc = charSetEncoding; - this.soapActionString = soapActionString; - } - - public boolean isRepeatable() { - return true; - } - - public byte[] writeBytes() throws AxisFault { - try { - ByteArrayOutputStream bytesOut = new ByteArrayOutputStream(); + if ((proxyProperties = (HttpTransportProperties.ProxyProperties) msgCtx + .getProperty(HTTPConstants.PROXY)) != null) { + if (proxyProperties.getProxyHostName() != null) { + returnValue = true; + } + } + return returnValue; + } + + /** + * Collect the HTTP header information and set them in the message context + * + * @param method + * @param msgContext + */ + protected void obatainHTTPHeaderInformation(HttpMethodBase method, + MessageContext msgContext) { + Header header = method + .getResponseHeader(HTTPConstants.HEADER_CONTENT_TYPE); + if (header != null) { + HeaderElement[] headers = header.getElements(); + for (int i = 0; i < headers.length; i++) { + NameValuePair charsetEnc = headers[i] + .getParameterByName(HTTPConstants.CHAR_SET_ENCODING); + if (headers[i].getName().equalsIgnoreCase( + HTTPConstants.HEADER_ACCEPT_MULTIPART_RELATED)) { + OperationContext opContext = msgContext + .getOperationContext(); + if (opContext != null) { + opContext.setProperty( + HTTPConstants.MTOM_RECIVED_CONTENT_TYPE, header + .getValue()); + } + } else if (charsetEnc != null) { + + msgContext.setProperty( + MessageContext.CHARACTER_SET_ENCODING, charsetEnc + .getValue()); //change to the value, which is text/xml or application/xml+soap + } + } + } + } + + protected void processResponse(HttpMethodBase httpMethod, + MessageContext msgContext) + throws IOException { + obatainHTTPHeaderInformation(httpMethod, msgContext); + InputStream in = httpMethod.getResponseBodyAsStream(); + if (in == null) { + throw new AxisFault(Messages.getMessage("canNotBeNull", + "InputStream")); + } + msgContext.getOperationContext().setProperty( + MessageContext.TRANSPORT_IN, in); + } + + public class AxisRequestEntity implements RequestEntity { - if (!doingMTOM) { - OMOutputFormat format2 = new OMOutputFormat(); + private String charSetEnc; + + private OMElement element; + + private boolean chuncked; + + private byte[] bytes; + + private boolean doingMTOM = false; + + private String soapActionString; + + private MessageContext msgCtxt; + + public AxisRequestEntity(OMElement element, boolean chuncked, + MessageContext msgCtxt, String charSetEncoding, + String soapActionString) { + this.element = element; + this.chuncked = chuncked; + this.msgCtxt = msgCtxt; + this.doingMTOM = msgCtxt.isDoingMTOM(); + this.charSetEnc = charSetEncoding; + this.soapActionString = soapActionString; + } + + public boolean isRepeatable() { + return true; + } + + public byte[] writeBytes() throws AxisFault { + try { + ByteArrayOutputStream bytesOut = new ByteArrayOutputStream(); + + if (!doingMTOM) { + OMOutputFormat format2 = new OMOutputFormat(); format2.setCharSetEncoding(charSetEnc); element.serializeAndConsume(bytesOut, format2); return bytesOut.toByteArray(); - } else { - format.setCharSetEncoding(charSetEnc); + } else { + format.setCharSetEncoding(charSetEnc); format.setDoOptimize(true); element.serializeAndConsume(bytesOut, format); return bytesOut.toByteArray(); - } - } catch (XMLStreamException e) { - throw new AxisFault(e); - } catch (FactoryConfigurationError e) { - throw new AxisFault(e); - } - } - - private void handleOMOutput(OutputStream out, boolean doingMTOM) - throws XMLStreamException { - format.setDoOptimize(doingMTOM); + } + } catch (XMLStreamException e) { + throw new AxisFault(e); + } catch (FactoryConfigurationError e) { + throw new AxisFault(e); + } + } + + private void handleOMOutput(OutputStream out, boolean doingMTOM) + throws XMLStreamException { + format.setDoOptimize(doingMTOM); element.serializeAndConsume(out, format); - } + } - public void writeRequest(OutputStream out) throws IOException { - try { - if (doingMTOM) { //chagened .. - if (chuncked) { - this.handleOMOutput(out, doingMTOM); - } else { - if (bytes == null) { - bytes = writeBytes(); - } - out.write(bytes); - } - - } else { - if (chuncked) { - this.handleOMOutput(out, doingMTOM); - } else { - if (bytes == null) { - bytes = writeBytes(); - } - out.write(bytes); - } - } - out.flush(); - } catch (XMLStreamException e) { - throw new AxisFault(e); - } catch (FactoryConfigurationError e) { - throw new AxisFault(e); - } catch (IOException e) { - throw new AxisFault(e); - } - } - - public long getContentLength() { - try { - if (doingMTOM) { //chagened - if (chuncked) { - return -1; - } else { - if (bytes == null) { - bytes = writeBytes(); - } - return bytes.length; - } - } else { - if (chuncked) { - return -1; - } else { - if (bytes == null) { - bytes = writeBytes(); - } - return bytes.length; - } - } - } catch (AxisFault e) { - return -1; - } - } + public void writeRequest(OutputStream out) throws IOException { + try { + if (doingMTOM) { //chagened .. + if (chuncked) { + this.handleOMOutput(out, doingMTOM); + } else { + if (bytes == null) { + bytes = writeBytes(); + } + out.write(bytes); + } + + } else { + if (chuncked) { + this.handleOMOutput(out, doingMTOM); + } else { + if (bytes == null) { + bytes = writeBytes(); + } + out.write(bytes); + } + } + out.flush(); + } catch (XMLStreamException e) { + throw new AxisFault(e); + } catch (FactoryConfigurationError e) { + throw new AxisFault(e); + } catch (IOException e) { + throw new AxisFault(e); + } + } + + public long getContentLength() { + try { + if (doingMTOM) { //chagened + if (chuncked) { + return -1; + } else { + if (bytes == null) { + bytes = writeBytes(); + } + return bytes.length; + } + } else { + if (chuncked) { + return -1; + } else { + if (bytes == null) { + bytes = writeBytes(); + } + return bytes.length; + } + } + } catch (AxisFault e) { + return -1; + } + } - public String getContentType() { - String encoding = format.getCharSetEncoding(); + public String getContentType() { + String encoding = format.getCharSetEncoding(); String contentType = format.getContentType(); - if (encoding != null) { - contentType += "; charset=" + encoding; - } - - // action header is not mandated in SOAP 1.2. So putting it, if available - if (!msgCtxt.isSOAP11() && soapActionString != null - && !"".equals(soapActionString.trim())) { - contentType = contentType + ";action=\"" + soapActionString - + "\";"; - } - return contentType; - } - } + if (encoding != null) { + contentType += "; charset=" + encoding; + } + + // action header is not mandated in SOAP 1.2. So putting it, if available + if (!msgCtxt.isSOAP11() && soapActionString != null + && !"".equals(soapActionString.trim())) { + contentType = contentType + ";action=\"" + soapActionString + + "\";"; + } + return contentType; + } + } } Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java?rev=356596&r1=356595&r2=356596&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java (original) +++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java Tue Dec 13 11:58:50 2005 @@ -52,7 +52,6 @@ httpClient.getHttpConnectionManager().getParams().setConnectionTimeout( connectionTimeout); - //todo giving proxy and NTLM support PostMethod postMethod = new PostMethod(url.toString());