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