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 ch...@apache.org on 2005/08/11 09:02:20 UTC

svn commit: r231412 - /webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java

Author: chinthaka
Date: Thu Aug 11 00:02:10 2005
New Revision: 231412

URL: http://svn.apache.org/viewcvs?rev=231412&view=rev
Log:
Adding capability to pick a service if its a fully qualified path.

Modified:
    webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java?rev=231412&r1=231411&r2=231412&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/engine/AddressingBasedDispatcher.java Thu Aug 11 00:02:10 2005
@@ -21,6 +21,7 @@
 import org.apache.axis2.description.HandlerDescription;
 import org.apache.axis2.description.OperationDescription;
 import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.util.Utils;
 
 import javax.xml.namespace.QName;
 
@@ -38,16 +39,18 @@
     public AddressingBasedDispatcher() {
         init(new HandlerDescription(NAME));
     }
+
     //TODO this logic needed to be improved, as the Dispatching is almost garentnee to fail
     public OperationDescription findOperation(ServiceDescription service,
                                               MessageContext messageContext)
             throws AxisFault {
-
         String action = messageContext.getWSAAction();
         if (action != null) {
             QName operationName = new QName(action);
             return service.getOperation(operationName);
         }
+
+
         return null;
     }
 
@@ -59,7 +62,18 @@
             QName serviceName = new QName(toEPR.getAddress());
             service =
                     messageContext.getSystemContext().getAxisConfiguration()
-                    .getService(serviceName);
+                            .getService(serviceName);
+            if (service == null) {
+                String filePart = toEPR.getAddress();
+                String[] values = Utils.parseRequestURLForServiceAndOperation(
+                        filePart);
+                if (values[0] != null) {
+                    serviceName = new QName(values[0]);
+                    AxisConfiguration registry =
+                            messageContext.getSystemContext().getAxisConfiguration();
+                    return registry.getService(serviceName);
+                }
+            }
         }
         return service;
     }