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 10:50:24 UTC
svn commit: r513680 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2:
builder/XFormURLEncodedBuilder.java transport/TransportUtils.java
transport/http/AbstractHTTPSender.java
Author: keithc
Date: Fri Mar 2 01:50:23 2007
New Revision: 513680
URL: http://svn.apache.org/viewvc?view=rev&rev=513680
Log:
Fixing client side issues in handling REST respnses
Fixing issues in 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/transport/TransportUtils.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.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=513680&r1=513679&r2=513680
==============================================================================
--- 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 Fri Mar 2 01:50:23 2007
@@ -70,23 +70,27 @@
if (endpointReference == null) {
throw new AxisFault("Cannot create DocumentElement without destination EPR");
}
- String address = messageContext.getTo().getAddress();
- String query = "";
+
+ String requestURL = endpointReference.getAddress();
+ try {
+ requestURL = extractParametersUsingHttpLocation(templatedPath, parameterMap,
+ requestURL,
+ queryParameterSeparator);
+ } catch (UnsupportedEncodingException e) {
+ throw new AxisFault(e);
+ }
+
+ String query = requestURL;
int index;
- if ((index = address.indexOf("?")) > 0) {
- query = address.substring(index + 1);
+ if ((index = requestURL.indexOf("?")) > 0) {
+ query = requestURL.substring(index + 1);
}
+
extractParametersFromRequest(parameterMap, query, queryParameterSeparator,
(String) messageContext.getProperty(
Constants.Configuration.CHARACTER_SET_ENCODING),
inputStream);
- try {
- extractParametersUsingHttpLocation(templatedPath, parameterMap,
- endpointReference.getAddress(),
- queryParameterSeparator);
- } catch (UnsupportedEncodingException e) {
- throw new AxisFault(e);
- }
+
return BuilderUtil.buildsoapMessage(messageContext, parameterMap,
@@ -114,8 +118,11 @@
String parts[] = queryString.split(queryParamSeparator);
for (int i = 0; i < parts.length; i++) {
int separator = parts[i].indexOf("=");
- parameterMap
- .put(parts[i].substring(0, separator), parts[i].substring(separator + 1));
+ if (separator > 0) {
+ parameterMap
+ .put(parts[i].substring(0, separator),
+ parts[i].substring(separator + 1));
+ }
}
}
@@ -166,7 +173,7 @@
* @param templatedPath
* @param parameterMap
*/
- protected void extractParametersUsingHttpLocation(String templatedPath,
+ protected String extractParametersUsingHttpLocation(String templatedPath,
MultipleEntryHashMap parameterMap,
String requestURL,
String queryParameterSeparator)
@@ -220,7 +227,7 @@
requestURIBuffer.substring(
endIndexOfConstant));
}
- startIndex = requestURIBuffer.length();
+ return "";
} else {
constantPart =
@@ -233,7 +240,10 @@
requestURIBuffer.substring(
endIndexOfConstant, indexOfNextConstant));
- startIndex = requestURIBuffer.length();
+ if (requestURIBuffer.length() > indexOfNextConstant + 1) {
+ return requestURIBuffer.substring(indexOfNextConstant + 1);
+ }
+ return "";
}
} else {
@@ -253,8 +263,9 @@
}
}
-
}
+
+ return requestURL;
}
private void addParameterToMap(MultipleEntryHashMap parameterMap, String paramName,
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java?view=diff&rev=513680&r1=513679&r2=513680
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java Fri Mar 2 01:50:23 2007
@@ -145,7 +145,7 @@
SOAPFactory soapFactory = new SOAP11Factory();
envelope = soapFactory.getDefaultEnvelope();
envelope.getBody().addChild(documentElement);
- }
+ }
return envelope;
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?view=diff&rev=513680&r1=513679&r2=513680
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Fri Mar 2 01:50:23 2007
@@ -21,6 +21,7 @@
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
+import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.description.Parameter;
@@ -204,24 +205,26 @@
* @param msgContext
*/
protected void obtainHTTPHeaderInformation(HttpMethodBase method,
- MessageContext msgContext) {
+ MessageContext msgContext) throws AxisFault {
Map transportHeaders = new CommonsTransportHeaders(method.getResponseHeaders());
msgContext.setProperty(MessageContext.TRANSPORT_HEADERS,transportHeaders);
Header header =method.getResponseHeader(HTTPConstants.HEADER_CONTENT_TYPE);
if (header != null) {
HeaderElement[] headers = header.getElements();
- OperationContext opContext = msgContext.getOperationContext();
+ MessageContext inMessageContext = msgContext.getOperationContext().getMessageContext(
+ WSDLConstants.MESSAGE_LABEL_IN_VALUE);
- if (opContext != null) {
- opContext.setProperty(Constants.Configuration.CONTENT_TYPE,
- header.getValue());
+ if (inMessageContext != null) {
+ inMessageContext.setProperty(Constants.Configuration.CONTENT_TYPE, header.getValue());
+
+
for (int i = 0; i < headers.length; i++) {
NameValuePair charsetEnc =headers[i].getParameterByName(
HTTPConstants.CHAR_SET_ENCODING);
if (charsetEnc != null) {
- opContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING,
+ inMessageContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING,
charsetEnc.getValue()); // change to the value, which is text/xml or application/xml+soap
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org