You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2006/02/09 09:55:31 UTC

svn commit: r376228 - in /webservices/axis2/trunk/java/modules: core/src/org/apache/axis2/description/OutInAxisOperation.java core/src/org/apache/axis2/description/OutOnlyAxisOperation.java webapp/engagingtoanoperation.jsp

Author: deepal
Date: Thu Feb  9 00:55:30 2006
New Revision: 376228

URL: http://svn.apache.org/viewcvs?rev=376228&view=rev
Log:
- fixing some bugs after Addressing changes

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyAxisOperation.java
    webservices/axis2/trunk/java/modules/webapp/engagingtoanoperation.jsp

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java?rev=376228&r1=376227&r2=376228&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutInAxisOperation.java Thu Feb  9 00:55:30 2006
@@ -1,7 +1,6 @@
 package org.apache.axis2.description;
 
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.client.ListenerManager;
 import org.apache.axis2.client.OperationClient;
@@ -14,14 +13,13 @@
 import org.apache.axis2.context.ServiceContext;
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.i18n.Messages;
+import org.apache.axis2.transport.TransportUtils;
+import org.apache.axis2.util.CallbackReceiver;
+import org.apache.axis2.util.UUIDGenerator;
 import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.soap.SOAPBody;
 import org.apache.ws.commons.soap.SOAPEnvelope;
 import org.apache.ws.commons.soap.SOAPFault;
-import org.apache.ws.commons.soap.SOAPHeader;
-import org.apache.axis2.transport.TransportUtils;
-import org.apache.axis2.util.CallbackReceiver;
-import org.apache.axis2.util.UUIDGenerator;
 import org.apache.wsdl.WSDLConstants;
 
 import javax.xml.namespace.QName;
@@ -248,7 +246,7 @@
                 mc.setSoapAction((String) soapaction.getValue());
             }
         }
-        addReferenceParameters(mc.getEnvelope());
+        addReferenceParameters(mc);
         if (options.isUseSeparateListener()) {
             CallbackReceiver callbackReceiver = (CallbackReceiver) axisOp
                     .getMessageReceiver();
@@ -309,17 +307,17 @@
         }
     }
 
-    private void addReferenceParameters(SOAPEnvelope env) {
+    private void addReferenceParameters(MessageContext msgctx) {
+        EndpointReference to = msgctx.getTo();
         if (options.isManageSession()) {
             EndpointReference tepr = sc.getTargetEPR();
             if (tepr != null) {
                 Map map = tepr.getAllReferenceParameters();
                 Iterator valuse = map.values().iterator();
-                SOAPHeader sh = env.getHeader();
                 while (valuse.hasNext()) {
                     Object refparaelement = valuse.next();
                     if (refparaelement instanceof OMElement) {
-                        sh.addChild((OMElement) refparaelement);
+                        to.addReferenceParameter((OMElement) refparaelement);
                     }
                 }
             }
@@ -361,50 +359,19 @@
         SOAPEnvelope resenvelope = TransportUtils.createSOAPMessage(
                 responseMessageContext, msgctx.getEnvelope().getNamespace()
                 .getName());
-        try {
-            // Adding request reference parameters into ServiceContext , so then in the next
-            // requesy automatically send them back
-            if (!resenvelope.getBody().hasFault()) {
-                sc.setTargetEPR(getReplyToEPR(resenvelope.getHeader()
-                        .getFirstChildWithName(new QName("ReplyTo"))));
-            }
-        } catch (Exception e) {
-            //NPE may occure there for need to catch this
-        }
-
         if (resenvelope != null) {
             responseMessageContext.setEnvelope(resenvelope);
             engine = new AxisEngine(msgctx.getConfigurationContext());
             engine.receive(responseMessageContext);
+            if (!resenvelope.getBody().hasFault()) {
+                sc.setTargetEPR(responseMessageContext.getReplyTo());
+            }
         } else {
             throw new AxisFault(Messages
                     .getMessage("blockingInvocationExpectsResponse"));
         }
 
         return responseMessageContext;
-    }
-
-    private EndpointReference getReplyToEPR(OMElement headerElement) {
-        EndpointReference epr = new EndpointReference(null);
-        if (headerElement == null)
-            return null;
-
-        Iterator childElements = headerElement.getChildElements();
-        while (childElements.hasNext()) {
-            OMElement eprChildElement = (OMElement) childElements.next();
-            if (AddressingConstants.EPR_ADDRESS.equals(eprChildElement.getLocalName())) {
-            } else if (AddressingConstants.EPR_REFERENCE_PARAMETERS.equals(eprChildElement.getLocalName())) {
-
-                Iterator referenceParameters = eprChildElement.getChildElements();
-                while (referenceParameters.hasNext()) {
-                    OMElement element = (OMElement) referenceParameters.next();
-                    epr.addReferenceParameter(element);
-                }
-            } else if (AddressingConstants.Final.WSA_METADATA.equals(eprChildElement.getLocalName())) {
-                epr.setMetaData(eprChildElement);
-            }
-        }
-        return epr;
     }
 
     /**

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyAxisOperation.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyAxisOperation.java?rev=376228&r1=376227&r2=376228&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyAxisOperation.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/OutOnlyAxisOperation.java Thu Feb  9 00:55:30 2006
@@ -11,10 +11,10 @@
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.context.ServiceContext;
 import org.apache.axis2.engine.AxisEngine;
+import org.apache.axis2.util.UUIDGenerator;
 import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.soap.SOAPEnvelope;
 import org.apache.ws.commons.soap.SOAPHeader;
-import org.apache.axis2.util.UUIDGenerator;
 import org.apache.wsdl.WSDLConstants;
 
 import javax.xml.namespace.QName;
@@ -256,17 +256,17 @@
         mc.setMessageID(messageId);
     }
 
-    private void addReferenceParameters(SOAPEnvelope env) {
+     private void addReferenceParameters(MessageContext msgctx) {
+        EndpointReference to = msgctx.getTo();
         if (options.isManageSession()) {
             EndpointReference tepr = sc.getTargetEPR();
             if (tepr != null) {
                 Map map = tepr.getAllReferenceParameters();
                 Iterator valuse = map.values().iterator();
-                SOAPHeader sh = env.getHeader();
                 while (valuse.hasNext()) {
                     Object refparaelement = valuse.next();
                     if (refparaelement instanceof OMElement) {
-                        sh.addChild((OMElement) refparaelement);
+                        to.addReferenceParameter((OMElement) refparaelement);
                     }
                 }
             }
@@ -318,7 +318,7 @@
         // create the operation context for myself
         OperationContext oc = new OperationContext(axisOp, sc);
         oc.addMessageContext(mc);
-        addReferenceParameters(mc.getEnvelope());
+        addReferenceParameters(mc);
         // ship it out
         AxisEngine engine = new AxisEngine(cc);
         engine.send(mc);

Modified: webservices/axis2/trunk/java/modules/webapp/engagingtoanoperation.jsp
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/webapp/engagingtoanoperation.jsp?rev=376228&r1=376227&r2=376228&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/webapp/engagingtoanoperation.jsp (original)
+++ webservices/axis2/trunk/java/modules/webapp/engagingtoanoperation.jsp Thu Feb  9 00:55:30 2006
@@ -3,7 +3,7 @@
                                                                              org.apache.axis2.description.AxisModule,
                                                                              java.util.Collection,
                                                                              java.util.HashMap,
-                                                                             java.util.Iterator" errorPage="" %>
+                                                                             java.util.Iterator"%>
 <jsp:include page="include/adminheader.jsp"></jsp:include>
 <%
     String status = (String)request.getSession().getAttribute(Constants.ENGAGE_STATUS);