summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java b/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
index c572b4e19b..d185780ed8 100644
--- a/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
+++ b/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
@@ -33,6 +33,7 @@ import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.binding.rmi.RMIBinding;
import org.apache.tuscany.sca.common.java.classloader.ClassLoaderDelegate;
import org.apache.tuscany.sca.host.rmi.RMIHost;
@@ -74,6 +75,20 @@ public class RMIServiceBindingProvider implements ServiceBindingProvider {
// binding.setURI(uri.toString());
wire = service.getRuntimeWire(binding);
+
+ // TODO - must be a better way to do this, which is copied from the Axis2ServiceProvider
+ // TODO - EPR - if there is no wire then find the wire for the SCA binding
+ // because this WS endpoint is providing remote support for the
+ // SCA binding
+ if (wire == null){
+ for(RuntimeWire tmpWire : service.getRuntimeWires()){
+ if (tmpWire.getEndpoint().getBinding() instanceof SCABinding){
+ wire = tmpWire;
+ break;
+ }
+ }
+ }
+
Interface serviceInterface = service.getInterfaceContract().getInterface();
rmiProxy = createRmiService(serviceInterface);