You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ke...@apache.org on 2007/03/05 06:29:05 UTC
svn commit: r514552 - in /webservices/axis2/trunk/java/modules/kernel:
src/org/apache/axis2/transport/http/
src/org/apache/axis2/transport/http/util/
test/org/apache/axis2/transport/http/util/
Author: keithc
Date: Sun Mar 4 21:28:57 2007
New Revision: 514552
URL: http://svn.apache.org/viewvc?view=rev&rev=514552
Log:
Fixing bug in XFormURLEncodedFormatter so that parameters are not duplicated
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java
webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java?view=diff&rev=514552&r1=514551&r2=514552
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/HTTPSender.java Sun Mar 4 21:28:57 2007
@@ -312,10 +312,7 @@
if (value != null) {
- if ((value.indexOf(SOAP11Constants.SOAP_11_CONTENT_TYPE) >= 0)
- || (value.indexOf(SOAP12Constants.SOAP_12_CONTENT_TYPE) >= 0)) {
- processResponse(method, msgContext);
- }
+ processResponse(method, msgContext);
}
} else {
throw new AxisFault(Messages.getMessage("transportError",
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java?view=diff&rev=514552&r1=514551&r2=514552
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/XFormURLEncodedFormatter.java Sun Mar 4 21:28:57 2007
@@ -18,6 +18,9 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.util.JavaUtils;
+import org.apache.axis2.description.WSDL2Constants;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.transport.MessageFormatter;
import org.apache.axis2.transport.http.util.URLTemplatingUtil;
@@ -90,7 +93,18 @@
// Check whether there is a template in the URL, if so we have to replace then with data
// values and create a new target URL.
targetURL = URLTemplatingUtil.getTemplatedURL(targetURL, messageContext, true);
- targetURL = URLTemplatingUtil.appendParametersToURL(messageContext, targetURL);
+ String ignoreUncited =
+ (String) messageContext.getProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED);
+
+ // Need to have this check here cause
+ if (ignoreUncited == null || !JavaUtils.isTrueExplicitly(ignoreUncited)) {
+ String httpMethod = (String) messageContext.getProperty(Constants.Configuration.HTTP_METHOD);
+ if (Constants.Configuration.HTTP_METHOD_GET.equals(httpMethod) || Constants.Configuration.HTTP_METHOD_DELETE.equals(httpMethod)) {
+ targetURL = URLTemplatingUtil.appendQueryParameters(messageContext, targetURL);
+ }
+ } else {
+ messageContext.getEnvelope().getBody().getFirstElement().detach();
+ }
return targetURL;
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java?view=diff&rev=514552&r1=514551&r2=514552
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/URLTemplatingUtil.java Sun Mar 4 21:28:57 2007
@@ -88,8 +88,9 @@
* @param url - Original url string
* @return String containing the appended query parameters
*/
- private static String appendQueryParameters(MessageContext messageContext, String url) {
+ public static URL appendQueryParameters(MessageContext messageContext, URL url) throws AxisFault {
+ String urlString = url.toString();
OMElement firstElement;
String queryParameterSeparator = (String) messageContext
.getProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR);
@@ -115,17 +116,23 @@
if (!"".equals(params)) {
- int index = url.indexOf("?");
+ int index = urlString.indexOf("?");
if (index == -1) {
- url = url + "?" + params.substring(0, params.length() - 1);
- } else if (index == url.length() - 1) {
- url = url + params.substring(0, params.length() - 1);
+ urlString = urlString + "?" + params.substring(0,params.length()-1);
+ }
+ else if (index == urlString.length() - 1) {
+ urlString = urlString + params.substring(0,params.length()-1);
+
} else {
- url = url + queryParameterSeparator + params.substring(0, params.length() - 1);
+ urlString = urlString + queryParameterSeparator + params.substring(0,params.length()-1);
}
}
- return url;
+ try {
+ return new URL(urlString);
+ } catch (MalformedURLException e) {
+ throw new AxisFault("Unable to append query parameters to URL");
+ }
}
/**
@@ -185,35 +192,4 @@
return targetURL;
}
- /**
- * Methos used to append parameters to URL. First checks whether the parameters should be
- * appended to the URL based on the WSDL 2.0 property whttp:ignoreUncited
- *
- * @param messageContext - The MessageContext of the request
- * @param targetURL - The original URL
- * @return returns an URL with the query parameters appended to it
- * @throws AxisFault - Thrown in case an exception occurs
- */
- public static URL appendParametersToURL(MessageContext messageContext, URL targetURL)
- throws AxisFault {
-
- String url = targetURL.toString();
- String ignoreUncited =
- (String) messageContext.getProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED);
-
- if (ignoreUncited == null || !JavaUtils.isTrueExplicitly(ignoreUncited)) {
- url = appendQueryParameters(messageContext, url);
- try {
- targetURL = new URL(url);
- } catch (MalformedURLException e) {
- throw new AxisFault("Unable to create target URL from template");
- }
- } else if (Constants.Configuration.HTTP_METHOD_GET
- .equalsIgnoreCase((String) messageContext.getProperty(
- Constants.Configuration.HTTP_METHOD))) {
- messageContext.getEnvelope().getBody().getFirstElement().detach();
- }
-
- return targetURL;
- }
}
Modified: webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java?view=diff&rev=514552&r1=514551&r2=514552
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/transport/http/util/URLTemplatingUtilTest.java Sun Mar 4 21:28:57 2007
@@ -65,7 +65,7 @@
public void testAppendParametersToURL() throws MalformedURLException, AxisFault {
URL testURL = new URL("http://locahost:8080/paramOne");
- URL modifiedURL = URLTemplatingUtil.appendParametersToURL(messageContext, testURL);
+ URL modifiedURL = URLTemplatingUtil.appendQueryParameters(messageContext,testURL);
System.out.println("original = " + testURL);
System.out.println("modifiedURL = " + modifiedURL);
@@ -76,8 +76,8 @@
public void testQueryParameterSeperator() throws MalformedURLException, AxisFault {
URL testURL = new URL("http://locahost:8080/paramOne");
- messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR, ";");
- URL modifiedURL = URLTemplatingUtil.appendParametersToURL(messageContext, testURL);
+ messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR,";");
+ URL modifiedURL = URLTemplatingUtil.appendQueryParameters(messageContext,testURL);
System.out.println("original = " + testURL);
System.out.println("modifiedURL = " + modifiedURL);
@@ -89,8 +89,8 @@
public void testIgnoreUncitedTrue() throws MalformedURLException, AxisFault {
URL testURL = new URL("http://locahost:8080/paramOne/Foo?test=1");
- messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED, "true");
- URL modifiedURL = URLTemplatingUtil.appendParametersToURL(messageContext, testURL);
+ messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED,"true");
+ URL modifiedURL = URLTemplatingUtil.appendQueryParameters(messageContext,testURL);
System.out.println("original = " + testURL);
System.out.println("modifiedURL = " + modifiedURL);
@@ -103,8 +103,8 @@
public void testIgnoreUncitedFalse() throws MalformedURLException, AxisFault {
URL testURL = new URL("http://locahost:8080/paramOne/Foo?test=1");
- messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED, "false");
- URL modifiedURL = URLTemplatingUtil.appendParametersToURL(messageContext, testURL);
+ messageContext.setProperty(WSDL2Constants.ATTR_WHTTP_IGNORE_UNCITED,"false");
+ URL modifiedURL = URLTemplatingUtil.appendQueryParameters(messageContext,testURL);
System.out.println("original = " + testURL);
System.out.println("modifiedURL = " + modifiedURL);
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org