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 2005/12/07 03:42:47 UTC
svn commit: r354673 - in
/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2: ./ engine/
transport/ transport/http/ transport/jms/ util/
Author: dims
Date: Tue Dec 6 18:42:35 2005
New Revision: 354673
URL: http://svn.apache.org/viewcvs?rev=354673&view=rev
Log:
oops! missed the rest of the files.
Added:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/OutTransportInfo.java (contents, props changed)
- copied, changed from r354285, webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPOutTransportInfo.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSOutTransportInfo.java
Removed:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPOutTransportInfo.java
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPWorker.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/ServletBasedOutTransportInfo.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPOutTransportInfo.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSSender.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSWorker.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java Tue Dec 6 18:42:35 2005
@@ -191,6 +191,9 @@
public static final String ADDRESSING_REPLY_TO = "WS-Addressing:ReplyTo" ;
public static final String ADDRESSING_TO = "WS-Addressing:To" ;
+ /** Transport Info */
+ public static final String OUT_TRANSPORT_INFO = "OutTransportInfo";
+
public static interface Configuration {
public static final String ENABLE_REST = "enableREST";
public static final String ENABLE_REST_THROUGH_GET="restThroughGet";
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java Tue Dec 6 18:42:35 2005
@@ -17,6 +17,7 @@
package org.apache.axis2.engine;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
@@ -26,7 +27,6 @@
import org.apache.axis2.om.OMAbstractFactory;
import org.apache.axis2.soap.*;
import org.apache.axis2.transport.TransportSender;
-import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -270,8 +270,8 @@
faultContext.setServerSide(true);
SOAPEnvelope envelope;
- faultContext.setProperty(HTTPConstants.HTTPOutTransportInfo,
- processingContext.getProperty(HTTPConstants.HTTPOutTransportInfo));
+ faultContext.setProperty(Constants.OUT_TRANSPORT_INFO,
+ processingContext.getProperty(Constants.OUT_TRANSPORT_INFO));
if (processingContext.isSOAP11()) {
envelope =
@@ -292,7 +292,7 @@
e);
faultContext.setEnvelope(envelope);
- faultContext.setProperty(HTTPConstants.HTTPOutTransportInfo, processingContext.getProperty(HTTPConstants.HTTPOutTransportInfo));
+ faultContext.setProperty(Constants.OUT_TRANSPORT_INFO, processingContext.getProperty(Constants.OUT_TRANSPORT_INFO));
return faultContext;
}
Copied: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/OutTransportInfo.java (from r354285, webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPOutTransportInfo.java)
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/OutTransportInfo.java?p2=webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/OutTransportInfo.java&p1=webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPOutTransportInfo.java&r1=354285&r2=354673&rev=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPOutTransportInfo.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/OutTransportInfo.java Tue Dec 6 18:42:35 2005
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-package org.apache.axis2.transport.http;
+package org.apache.axis2.transport;
-public interface HTTPOutTransportInfo {
+public interface OutTransportInfo {
public abstract void setContentType(String contentType);
}
Propchange: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/OutTransportInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java Tue Dec 6 18:42:35 2005
@@ -124,7 +124,7 @@
(SessionContext) sessionContext,
configContext.getAxisConfiguration().getTransportIn(new QName(Constants.TRANSPORT_HTTP)),
configContext.getAxisConfiguration().getTransportOut(new QName(Constants.TRANSPORT_HTTP)));
- msgContext.setProperty(HTTPConstants.HTTPOutTransportInfo,
+ msgContext.setProperty(Constants.OUT_TRANSPORT_INFO,
new ServletBasedOutTransportInfo(httpServletResponse));
msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, getTransportHeaders(httpServletRequest));
msgContext.setProperty(SESSION_ID, httpServletRequest.getSession().getId());
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Tue Dec 6 18:42:35 2005
@@ -36,6 +36,7 @@
import org.apache.axis2.soap.SOAP11Constants;
import org.apache.axis2.soap.SOAP12Constants;
import org.apache.axis2.transport.TransportSender;
+import org.apache.axis2.transport.OutTransportInfo;
import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HeaderElement;
@@ -236,9 +237,9 @@
(OutputStream) msgContext.getProperty(
MessageContext.TRANSPORT_OUT);
if (msgContext.isServerSide()) {
- HTTPOutTransportInfo transportInfo =
- (HTTPOutTransportInfo) msgContext.getProperty(
- HTTPConstants.HTTPOutTransportInfo);
+ OutTransportInfo transportInfo =
+ (OutTransportInfo) msgContext.getProperty(
+ Constants.OUT_TRANSPORT_INFO);
if (transportInfo != null) {
format.setSOAP11(msgContext.isSOAP11());
//this is the servlet2.3 way of setting encodings
@@ -246,7 +247,7 @@
String encoding = contentType + "; charset=" + format.getCharSetEncoding();
transportInfo.setContentType(encoding);
} else {
- throw new AxisFault(HTTPConstants.HTTPOutTransportInfo + " does not set");
+ throw new AxisFault(Constants.OUT_TRANSPORT_INFO + " has not been set");
}
}
format.setDoOptimize(msgContext.isDoingMTOM());
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPConstants.java Tue Dec 6 18:42:35 2005
@@ -400,7 +400,6 @@
*/
public static final String HTTP_REQ_TYPE = "HTTP_REQ_TYPE";
- public static final String HTTPOutTransportInfo = "HTTPOutTransportInfo";
public static final String MTOM_RECIVED_CONTENT_TYPE = "MTOM_RECEIVED";
/**
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPWorker.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPWorker.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPWorker.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPWorker.java Tue Dec 6 18:42:35 2005
@@ -102,9 +102,9 @@
msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, getHeaders(request));
msgContext.setServiceGroupContextId(UUIDGenerator.getUUID());
- //This is way to provide Accsess to the transport information to the transport Sender
+ //This is way to provide access to the transport information to the transport Sender
msgContext.setProperty(
- HTTPConstants.HTTPOutTransportInfo,
+ Constants.OUT_TRANSPORT_INFO,
new SimpleHTTPOutTransportInfo(response));
String soapAction = null;
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/ServletBasedOutTransportInfo.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/ServletBasedOutTransportInfo.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/ServletBasedOutTransportInfo.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/ServletBasedOutTransportInfo.java Tue Dec 6 18:42:35 2005
@@ -16,9 +16,11 @@
package org.apache.axis2.transport.http;
+import org.apache.axis2.transport.OutTransportInfo;
+
import javax.servlet.http.HttpServletResponse;
-public class ServletBasedOutTransportInfo implements HTTPOutTransportInfo {
+public class ServletBasedOutTransportInfo implements OutTransportInfo {
private HttpServletResponse response;
public ServletBasedOutTransportInfo(HttpServletResponse response) {
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPOutTransportInfo.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPOutTransportInfo.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPOutTransportInfo.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SimpleHTTPOutTransportInfo.java Tue Dec 6 18:42:35 2005
@@ -17,9 +17,10 @@
package org.apache.axis2.transport.http;
import org.apache.axis2.transport.http.server.SimpleResponse;
+import org.apache.axis2.transport.OutTransportInfo;
import org.apache.commons.httpclient.Header;
-public class SimpleHTTPOutTransportInfo implements HTTPOutTransportInfo {
+public class SimpleHTTPOutTransportInfo implements OutTransportInfo {
private SimpleResponse outInfo;
private String encoding;
Added: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSOutTransportInfo.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSOutTransportInfo.java?rev=354673&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSOutTransportInfo.java (added)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSOutTransportInfo.java Tue Dec 6 18:42:35 2005
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2001, 2002,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis2.transport.jms;
+
+import org.apache.axis2.transport.OutTransportInfo;
+
+import javax.jms.Destination;
+
+public class JMSOutTransportInfo implements OutTransportInfo {
+ JMSConnector connector = null;
+ Destination dest = null;
+ String contentType = null;
+
+ JMSOutTransportInfo(JMSConnector connector, Destination dest) {
+ this.connector = connector;
+ this.dest = dest;
+
+ }
+
+ public void setContentType(String contentType) {
+ this.contentType = contentType;
+ }
+
+ public Destination getDestination() {
+ return dest;
+ }
+
+ public JMSConnector getConnector() {
+ return connector;
+ }
+}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSSender.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSSender.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/JMSSender.java Tue Dec 6 18:42:35 2005
@@ -17,6 +17,7 @@
package org.apache.axis2.transport.jms;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.om.OMElement;
import org.apache.axis2.om.OMOutputFormat;
@@ -27,8 +28,11 @@
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.OperationContext;
import org.apache.axis2.transport.AbstractTransportSender;
import org.apache.axis2.transport.TransportSender;
+import org.apache.axis2.transport.OutTransportInfo;
+import org.apache.axis2.transport.http.HTTPTransportUtils;
import javax.jms.Destination;
import javax.xml.namespace.QName;
@@ -62,23 +66,44 @@
* @throws AxisFault
*/
public void invoke(MessageContext msgContext) throws AxisFault {
+ JMSConnector connector = null;
+ Destination dest = null;
+ if (msgContext.isServerSide()) {
+ JMSOutTransportInfo transportInfo =
+ (JMSOutTransportInfo) msgContext.getProperty(
+ Constants.OUT_TRANSPORT_INFO);
+ if (transportInfo != null) {
+ connector = transportInfo.getConnector();
+ dest = transportInfo.getDestination();
+ }
+ }
- super.invoke(msgContext);
+ boolean waitForResponse = false;
+ if(connector == null) {
+ if (msgContext.getProperty(JMSConstants.WAIT_FOR_RESPONSE) != null && msgContext.getProperty(JMSConstants.WAIT_FOR_RESPONSE).equals(Boolean.TRUE))
+ waitForResponse =
+ ((Boolean) msgContext.getProperty(
+ JMSConstants.WAIT_FOR_RESPONSE)).booleanValue();
+
+ super.invoke(msgContext);
+ }
- JMSConnector connector = null;
try {
- Object destination = msgContext.getProperty(JMSConstants.DESTINATION);
- if (destination == null)
- throw new AxisFault("noDestination");
-
- connector = (JMSConnector) msgContext.getProperty(JMSConstants.CONNECTOR);
-
JMSEndpoint endpoint = null;
- if (destination instanceof String)
- endpoint = connector.createEndpoint((String) destination);
- else
- endpoint = connector.createEndpoint((Destination) destination);
-
+ if (dest == null) {
+ Object destination = msgContext.getProperty(JMSConstants.DESTINATION);
+ if (destination == null)
+ throw new AxisFault("noDestination");
+
+ connector = (JMSConnector) msgContext.getProperty(JMSConstants.CONNECTOR);
+
+ if (destination instanceof String)
+ endpoint = connector.createEndpoint((String) destination);
+ else
+ endpoint = connector.createEndpoint((Destination) destination);
+ } else {
+ endpoint = connector.createEndpoint(dest);
+ }
ByteArrayOutputStream out = new ByteArrayOutputStream();
writeMessage(msgContext, out);
@@ -97,11 +122,8 @@
// }
// }
- boolean waitForResponse = true;
- if (msgContext.getProperty(JMSConstants.WAIT_FOR_RESPONSE).equals(Boolean.TRUE))
- waitForResponse =
- ((Boolean) msgContext.getProperty(
- JMSConstants.WAIT_FOR_RESPONSE)).booleanValue();
+ props.put("contentType", getContentType(msgContext));
+ props.put("SOAPAction", getSOAPAction(msgContext));
if (waitForResponse) {
long timeout = ((Long) msgContext.getProperty(JMSConstants._TIMEOUT_TIME)).longValue();
byte[] response = endpoint.call(out.toByteArray(), timeout, props);
@@ -147,10 +169,9 @@
* for the JMS Messages.
*/
protected HashMap createApplicationProperties(MessageContext context) {
- HashMap props = null;
+ HashMap props = new HashMap();
if (context.getProperty(
JMSConstants.JMS_APPLICATION_MSG_PROPS) != null) {
- props = new HashMap();
props.putAll((Map) context.getProperty(
JMSConstants.JMS_APPLICATION_MSG_PROPS));
}
@@ -204,4 +225,52 @@
}
}
+ public String getContentType(MessageContext msgCtx) {
+ OMOutputFormat format = new OMOutputFormat();
+
+ String soapActionString = getSOAPAction(msgCtx);
+
+ String charSetEnc =
+ (String) msgCtx.getProperty(
+ MessageContext.CHARACTER_SET_ENCODING);
+ if (charSetEnc != null) {
+ format.setCharSetEncoding(charSetEnc);
+ } else {
+ OperationContext opctx = msgCtx.getOperationContext();
+ if (opctx != null) {
+ charSetEnc = (String) opctx.getProperty(MessageContext.CHARACTER_SET_ENCODING);
+ }
+ }
+ /**
+ * If the char set enc is still not found use the default
+ */
+ if (charSetEnc == null) {
+ charSetEnc = MessageContext.DEFAULT_CHAR_SET_ENCODING;
+ }
+ format.setSOAP11(msgCtx.isSOAP11());
+ format.setCharSetEncoding(charSetEnc);
+
+ 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 (!msgCtx.isSOAP11() && soapActionString != null && !"".equals(soapActionString.trim())) {
+ contentType = contentType + ";action=\"" + soapActionString + "\";";
+ }
+ return contentType;
+ }
+
+ private String getSOAPAction(MessageContext msgCtx) {
+ String soapActionString = msgCtx.getSoapAction();
+ if (soapActionString == null || soapActionString.length() == 0) {
+ soapActionString = msgCtx.getWSAAction();
+ }
+ if (soapActionString == null) {
+ soapActionString = "";
+ }
+ return soapActionString;
+ }
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSWorker.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSWorker.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSWorker.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/jms/SimpleJMSWorker.java Tue Dec 6 18:42:35 2005
@@ -31,15 +31,14 @@
import org.apache.axis2.soap.SOAPProcessingException;
import org.apache.axis2.soap.impl.llom.builder.StAXSOAPModelBuilder;
import org.apache.axis2.soap.impl.llom.soap12.SOAP12Factory;
+import org.apache.axis2.transport.TransportUtils;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.transport.http.HTTPTransportUtils;
-import org.apache.axis2.transport.TransportUtils;
import org.apache.axis2.util.UUIDGenerator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.jms.BytesMessage;
-import javax.jms.Destination;
import javax.xml.namespace.QName;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.stream.XMLInputFactory;
@@ -49,7 +48,6 @@
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.OutputStream;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
@@ -105,16 +103,34 @@
return;
}
+ // if the incoming message has a contentType set,
+ // pass it to my new Message
+ String soapAction = null;
+ try {
+ soapAction = message.getStringProperty("SOAPAction");
+ }
+ catch (Exception e) {
+ log.error(Messages.getMessage("exception00"), e);
+ e.printStackTrace();
+ return;
+ }
+
MessageContext msgContext;
try {
TransportOutDescription transportOut =
configurationContext.getAxisConfiguration().getTransportOut(
- new QName(Constants.TRANSPORT_HTTP));
+ new QName(Constants.TRANSPORT_JMS));
msgContext = new MessageContext(
- configurationContext,
- configurationContext.getAxisConfiguration().getTransportIn(
- new QName(Constants.TRANSPORT_HTTP)),
- transportOut);
+ configurationContext);
+ //,
+ // configurationContext.getAxisConfiguration().getTransportIn(
+ // new QName(Constants.TRANSPORT_JMS)),
+ // transportOut);
+ msgContext.setProperty(
+ Constants.OUT_TRANSPORT_INFO,
+ new JMSOutTransportInfo(listener.getConnector(), message.getJMSReplyTo()));
+
+ msgContext.setTransportOut(transportOut);
msgContext.setServerSide(true);
} catch (Exception e) {
log.error(Messages.getMessage("exception00"), e);
@@ -122,15 +138,18 @@
return;
}
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- msgContext.setProperty(MessageContext.TRANSPORT_OUT, baos);
+// ByteArrayOutputStream baos = new ByteArrayOutputStream();
+// msgContext.setProperty(MessageContext.TRANSPORT_OUT, baos);
msgContext.setServiceGroupContextId(UUIDGenerator.getUUID());
+ if(soapAction != null) {
+ msgContext.setSoapAction(soapAction);
+ }
try {
processJMSRequest(
msgContext,
in,
- baos,
+// baos,
contentType
);
} catch (Exception e) {
@@ -161,17 +180,17 @@
// msg.setMessageContext(msgContext);
// }
- try {
- // now we need to send the response
- Destination destination = message.getJMSReplyTo();
- if (destination == null)
- return;
- JMSEndpoint replyTo = listener.getConnector().createEndpoint(destination);
- replyTo.send(baos.toByteArray());
- }
- catch (Exception e) {
- e.printStackTrace();
- }
+// try {
+// // now we need to send the response
+// Destination destination = message.getJMSReplyTo();
+// if (destination == null)
+// return;
+// JMSEndpoint replyTo = listener.getConnector().createEndpoint(destination);
+// replyTo.send(baos.toByteArray());
+// }
+// catch (Exception e) {
+// e.printStackTrace();
+// }
// if (msgContext.getProperty(MessageContext.QUIT_REQUESTED) != null)
// // why then, quit!
@@ -184,7 +203,7 @@
public static void processJMSRequest(
MessageContext msgContext,
InputStream in,
- OutputStream out,
+// OutputStream out,
String contentType
)
throws AxisFault {
@@ -205,7 +224,7 @@
// msgContext.setWSAAction(soapActionHeader);
// msgContext.setSoapAction(soapActionHeader);
// msgContext.setTo(new EndpointReference(requestURI));
- msgContext.setProperty(MessageContext.TRANSPORT_OUT, out);
+// msgContext.setProperty(MessageContext.TRANSPORT_OUT, out);
msgContext.setServerSide(true);
SOAPEnvelope envelope = null;
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java?rev=354673&r1=354672&r2=354673&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/Utils.java Tue Dec 6 18:42:35 2005
@@ -33,7 +33,6 @@
import org.apache.axis2.phaseresolver.PhaseException;
import org.apache.axis2.receivers.AbstractMessageReceiver;
import org.apache.axis2.receivers.RawXMLINOutMessageReceiver;
-import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.wsdl.WSDLService;
import javax.xml.namespace.QName;
@@ -73,8 +72,8 @@
newmsgCtx.setServiceContext(inMessageContext.getServiceContext());
newmsgCtx.setProperty(MessageContext.TRANSPORT_OUT,
inMessageContext.getProperty(MessageContext.TRANSPORT_OUT));
- newmsgCtx.setProperty(HTTPConstants.HTTPOutTransportInfo,
- inMessageContext.getProperty(HTTPConstants.HTTPOutTransportInfo));
+ newmsgCtx.setProperty(Constants.OUT_TRANSPORT_INFO,
+ inMessageContext.getProperty(Constants.OUT_TRANSPORT_INFO));
//Setting the charater set encoding
newmsgCtx.setProperty(MessageContext.CHARACTER_SET_ENCODING, inMessageContext