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;
}