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/02 04:46:11 UTC
svn commit: r513608 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2:
builder/XFormURLEncodedBuilder.java engine/HTTPLocationBasedDispatcher.java
transport/http/util/RESTUtil.java
Author: keithc
Date: Thu Mar 1 19:46:10 2007
New Revision: 513608
URL: http://svn.apache.org/viewvc?view=rev&rev=513608
Log:
Fixing few issues in HTTPLocation based dispatching and XFormURLEncodedBuilder
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/HTTPLocationBasedDispatcher.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java?view=diff&rev=513608&r1=513607&r2=513608
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/XFormURLEncodedBuilder.java Thu Mar 1 19:46:10 2007
@@ -44,10 +44,14 @@
(AxisBindingOperation) messageContext.getProperty(
Constants.AXIS_BINDING_OPERATION);
String queryParameterSeparator = null;
+ String templatedPath = null;
if (axisBindingOperation != null) {
- queryParameterSeparator = (String) messageContext
+ queryParameterSeparator = (String) axisBindingOperation
.getProperty(WSDL2Constants.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR);
- } else {
+ templatedPath =
+ (String) axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION);
+ }
+ if (queryParameterSeparator == null) {
queryParameterSeparator =
WSDL20DefaultValueHolder.ATTR_WHTTP_QUERY_PARAMETER_SEPARATOR_DEFAULT;
}
@@ -62,8 +66,6 @@
} else {
soapFactory = getSOAPFactory(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
}
- String templatedPath =
- (String) messageContext.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION);
EndpointReference endpointReference = messageContext.getTo();
if (endpointReference == null) {
throw new AxisFault("Cannot create DocumentElement without destination EPR");
@@ -100,7 +102,7 @@
String queryString;
- if (query != null) {
+ if (query != null && !"".equals(query)) {
try {
queryString = URIEncoderDecoder.decode(query);
@@ -118,6 +120,7 @@
}
+ if (inputStream != null) {
try {
InputStreamReader inputStreamReader =
new InputStreamReader(inputStream, charsetEncoding);
@@ -139,7 +142,7 @@
} catch (IOException e) {
throw new AxisFault(e);
}
-
+ }
}
/**
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/HTTPLocationBasedDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/HTTPLocationBasedDispatcher.java?view=diff&rev=513608&r1=513607&r2=513608
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/HTTPLocationBasedDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/HTTPLocationBasedDispatcher.java Thu Mar 1 19:46:10 2007
@@ -49,7 +49,7 @@
AxisService axisService = messageContext.getAxisService();
if (axisService != null) {
String uri = messageContext.getTo().getAddress();
- String httpLocation = parseRequestURL(uri);
+ String httpLocation = parseRequestURL(uri, messageContext.getConfigurationContext().getServiceContextPath());
if (httpLocation != null) {
AxisEndpoint axisEndpoint = (AxisEndpoint) messageContext
@@ -83,22 +83,29 @@
init(new HandlerDescription(NAME));
}
- private String parseRequestURL (String path) {
+ private String parseRequestURL(String path, String servicePath) {
- path = path.substring(1);
- int index = path.indexOf("/");
- String service = null;
+ int index = path.lastIndexOf(servicePath);
+ String service = null;
- if (-1 != index) {
- service = path.substring(index);
+ if (-1 != index) {
+ int serviceStart = index + servicePath.length();
+ if (path.length() > serviceStart + 1) {
+ service = path.substring(serviceStart + 1);
+ }
+ }
+
+ index = service.indexOf("/");
+ if (-1 != index) {
+ service = service.substring(index);
} else {
- int queryIndex = path.indexOf("?");
- if (queryIndex != -1) {
- service = path.substring(queryIndex);
- }
+ int queryIndex = path.indexOf("?");
+ if (queryIndex != -1) {
+ service = service.substring(queryIndex);
}
- return service;
- }
+ }
+ return service;
+ }
/**
* Given the requestPath that the request came to his method returns the corresponding axisOperation
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java?view=diff&rev=513608&r1=513607&r2=513608
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/util/RESTUtil.java Thu Mar 1 19:46:10 2007
@@ -61,9 +61,6 @@
contentType);
msgContext.setProperty(MessageContext.TRANSPORT_OUT, out);
- msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE,
- HTTPConstants.MEDIA_TYPE_APPLICATION_XML);
- return invokeAxisEngine(msgContext);
} catch (AxisFault axisFault) {
throw axisFault;
@@ -71,7 +68,11 @@
throw new AxisFault(e);
} catch (IOException e) {
throw new AxisFault(e);
+ } finally{
+ msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE,
+ HTTPConstants.MEDIA_TYPE_APPLICATION_XML);
}
+ return invokeAxisEngine(msgContext);
}
public static Handler.InvocationResponse processURLRequest(MessageContext msgContext,
@@ -101,16 +102,18 @@
}
msgContext.setEnvelope(soapEnvelope);
- msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE,
- HTTPConstants.MEDIA_TYPE_APPLICATION_XML);
- return invokeAxisEngine(msgContext);
+
} catch (AxisFault axisFault) {
throw axisFault;
}
catch (IOException e) {
throw new AxisFault(e);
+ } finally{
+ msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE,
+ HTTPConstants.MEDIA_TYPE_APPLICATION_XML);
}
+ return invokeAxisEngine(msgContext);
}
private static Handler.InvocationResponse invokeAxisEngine(MessageContext messageContext)
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org