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 di...@apache.org on 2008/03/08 00:00:00 UTC
svn commit: r634856 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http:
AbstractHTTPSender.java CommonsHTTPTransportSender.java
server/AxisHttpResponseImpl.java
Author: dims
Date: Fri Mar 7 14:59:59 2008
New Revision: 634856
URL: http://svn.apache.org/viewvc?rev=634856&view=rev
Log:
working on AXIS2-2550, add support for simple map with key/value in addition to using Header's. Still researching changes on jaxws side for that bug
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java
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?rev=634856&r1=634855&r2=634856&view=diff
==============================================================================
--- 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 7 14:59:59 2008
@@ -47,6 +47,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Iterator;
import java.util.zip.GZIPInputStream;
public abstract class AbstractHTTPSender {
@@ -534,17 +535,31 @@
boolean isCustomUserAgentSet = false;
// set the custom headers, if available
Object httpHeadersObj = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
- if (httpHeadersObj != null && httpHeadersObj instanceof ArrayList) {
- ArrayList httpHeaders = (ArrayList) httpHeadersObj;
- Header header;
- for (int i = 0; i < httpHeaders.size(); i++) {
- header = (Header) httpHeaders.get(i);
- if (HTTPConstants.HEADER_USER_AGENT.equals(header.getName())) {
- isCustomUserAgentSet = true;
+ if (httpHeadersObj != null) {
+ if (httpHeadersObj instanceof ArrayList) {
+ ArrayList httpHeaders = (ArrayList) httpHeadersObj;
+ Header header;
+ for (int i = 0; i < httpHeaders.size(); i++) {
+ header = (Header) httpHeaders.get(i);
+ if (HTTPConstants.HEADER_USER_AGENT.equals(header.getName())) {
+ isCustomUserAgentSet = true;
+ }
+ method.addRequestHeader(header);
+ }
+
+ }
+ if (httpHeadersObj instanceof Map) {
+ Map httpHeaders = (Map) httpHeadersObj;
+ for (Iterator iterator = httpHeaders.entrySet().iterator(); iterator.hasNext();) {
+ Map.Entry entry = (Map.Entry) iterator.next();
+ String key = (String) entry.getKey();
+ String value = (String) entry.getValue();
+ if (HTTPConstants.HEADER_USER_AGENT.equals(key)) {
+ isCustomUserAgentSet = true;
+ }
+ method.addRequestHeader(key, value);
}
- method.addRequestHeader(header);
}
-
}
if (!isCustomUserAgentSet) {
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=634856&r1=634855&r2=634856&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Fri Mar 7 14:59:59 2008
@@ -32,6 +32,7 @@
import org.apache.axis2.transport.OutTransportInfo;
import org.apache.axis2.transport.TransportSender;
import org.apache.axis2.transport.TransportUtils;
+import org.apache.axis2.transport.http.server.AxisHttpResponseImpl;
import org.apache.axis2.util.JavaUtils;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpException;
@@ -46,6 +47,7 @@
import java.net.URL;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.zip.GZIPOutputStream;
public class CommonsHTTPTransportSender extends AbstractHandler implements
@@ -259,6 +261,29 @@
if (header != null) {
servletBasedOutTransportInfo
.addHeader(header.getName(), header.getValue());
+ }
+ }
+ }
+ } else if (transportInfo instanceof AxisHttpResponseImpl) {
+ Object customHeaders = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
+ if (customHeaders != null) {
+ if (customHeaders instanceof List) {
+ Iterator iter = ((List) customHeaders).iterator();
+ while (iter.hasNext()) {
+ Header header = (Header) iter.next();
+ if (header != null) {
+ ((AxisHttpResponseImpl) transportInfo)
+ .addHeader(header.getName(), header.getValue());
+ }
+ }
+ } else if (customHeaders instanceof Map) {
+ Iterator iter = ((Map) customHeaders).entrySet().iterator();
+ while (iter.hasNext()) {
+ Map.Entry header = (Map.Entry) iter.next();
+ if (header != null) {
+ ((AxisHttpResponseImpl) transportInfo)
+ .addHeader((String) header.getKey(), (String) header.getValue());
+ }
}
}
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java?rev=634856&r1=634855&r2=634856&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java Fri Mar 7 14:59:59 2008
@@ -214,7 +214,7 @@
try {
commit();
} catch (HttpException ex) {
- throw new IOException("HTTP protocol exception: " + ex.getMessage());
+ throw (IOException) new IOException().initCause(ex);
}
if (this.out == null) {
this.out = conn.getOutputStream();
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org