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 am...@apache.org on 2007/08/14 15:54:54 UTC

svn commit: r565760 - in /webservices/axis2/trunk/java/modules: rmi/src/org/apache/axis2/rmi/client/ rmi/src/org/apache/axis2/rmi/databind/ rmi/src/org/apache/axis2/rmi/metadata/ rmi/test/org/apache/axis2/rmi/client/ rmi/test/org/apache/axis2/rmi/datab...

Author: amilas
Date: Tue Aug 14 06:54:52 2007
New Revision: 565760

URL: http://svn.apache.org/viewvc?view=rev&rev=565760
Log:
Add the proxy support to create client stubs. in this way user can invoke their
java service as in a normal java envirionment

Added:
    webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/ProxyInvocationHandler.java
    webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClientProxy.java
    webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1Interface.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1Interface.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2Interface.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3Interface.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4Interface.java
Modified:
    webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClient.java
    webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/databind/JavaObjectSerializer.java
    webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/metadata/Service.java
    webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/client/RMIClientService1Test.java
    webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/databind/RequestResponseTest.java
    webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/ServerTest.java
    webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService1.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService2.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService3.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService4.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3.java
    webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4.java

Added: webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/ProxyInvocationHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/ProxyInvocationHandler.java?view=auto&rev=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/ProxyInvocationHandler.java (added)
+++ webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/ProxyInvocationHandler.java Tue Aug 14 06:54:52 2007
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2004,2005 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.rmi.client;
+
+import org.apache.axis2.rmi.Configurator;
+import org.apache.axis2.AxisFault;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+
+
+public class ProxyInvocationHandler implements InvocationHandler {
+
+    private RMIClient rmiClient;
+
+    public ProxyInvocationHandler(Class interfaceClass,
+                                  Configurator configurator,
+                                  String epr) throws AxisFault {
+        this.rmiClient = new RMIClient(interfaceClass,configurator,epr);
+    }
+
+    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+        // invoke the rmiclient object
+        return this.rmiClient.invokeMethod(method.getName(),args);
+    }
+}

Modified: webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClient.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClient.java (original)
+++ webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClient.java Tue Aug 14 06:54:52 2007
@@ -102,7 +102,7 @@
     }
 
     public Object invokeMethod(String operationName,
-                               List inputObjects) throws Exception {
+                               Object[] inputObjects) throws Exception {
 
         Operation operation = this.service.getOperation(operationName);
         OMElement inputOMElement = getInputOMElement(inputObjects,
@@ -140,7 +140,7 @@
         return returnObject;
     }
 
-    private OMElement getInputOMElement(final List inputObjects,
+    private OMElement getInputOMElement(final Object[] inputObjects,
                                         final Operation operation,
                                         final JavaObjectSerializer javaObjectSerializer,
                                         OMFactory omFactory) {

Added: webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClientProxy.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClientProxy.java?view=auto&rev=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClientProxy.java (added)
+++ webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/client/RMIClientProxy.java Tue Aug 14 06:54:52 2007
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2004,2005 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.rmi.client;
+
+import org.apache.axis2.rmi.Configurator;
+import org.apache.axis2.AxisFault;
+
+import java.lang.reflect.Proxy;
+import java.lang.reflect.InvocationHandler;
+
+/**
+ * this class is used to generate the proxy clients.
+ */
+
+public class RMIClientProxy {
+    public static Object createProxy(Class interfaceClass,
+                                     Configurator configurator,
+                                     String epr) throws AxisFault {
+        InvocationHandler invocationHandler = new ProxyInvocationHandler(interfaceClass,configurator,epr);
+        Object proxy = Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
+                                              new Class[]{interfaceClass},
+                                              invocationHandler);
+        return proxy;
+
+    }
+
+    public static Object createProxy(Class interfaceClass,
+                                     String epr) throws AxisFault {
+        return createProxy(interfaceClass,new Configurator(),epr);
+    }
+}

Modified: webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/databind/JavaObjectSerializer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/databind/JavaObjectSerializer.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/databind/JavaObjectSerializer.java (original)
+++ webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/databind/JavaObjectSerializer.java Tue Aug 14 06:54:52 2007
@@ -67,7 +67,7 @@
      * @throws XmlSerializingException
      */
 
-    public void serializeInputElement(List objects,
+    public void serializeInputElement(Object[] objects,
                                       XmlElement inputXmlElement,
                                       List inputParameters,
                                       XMLStreamWriter writer) throws XMLStreamException,
@@ -77,12 +77,16 @@
                 inputXmlElement.getNamespace(),
                 inputXmlElement.getName(),
                 namespacePrefix);
-        for (int i = 0; i < objects.size(); i++) {
-            serializeParameter(objects.get(i),
-                    (Parameter) inputParameters.get(i),
-                    writer,
-                    namespacePrefix);
+        // input objects null means no parameters
+        if (objects != null) {
+            for (int i = 0; i < objects.length; i++) {
+                serializeParameter(objects[i],
+                        (Parameter) inputParameters.get(i),
+                        writer,
+                        namespacePrefix);
+            }
         }
+
         writer.writeEndElement();
     }
 

Modified: webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/metadata/Service.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/metadata/Service.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/metadata/Service.java (original)
+++ webservices/axis2/trunk/java/modules/rmi/src/org/apache/axis2/rmi/metadata/Service.java Tue Aug 14 06:54:52 2007
@@ -123,8 +123,8 @@
             javaMethod = javaMethods[i];
             // we generate oprations only from the public methods
             //TODO : remove overload methods
-            if (Modifier.isPublic(javaMethod.getModifiers()) &&
-                    !Modifier.isAbstract(javaMethod.getModifiers())) {
+            if (this.javaClass.isInterface() || (Modifier.isPublic(javaMethod.getModifiers()) &&
+                    !Modifier.isAbstract(javaMethod.getModifiers()))) {
                 operation = new Operation(javaMethod);
                 operation.setNamespace(this.namespace);
                 operation.populateMetaData(configurator, this.processedTypeMap, this.exceptionClassToParameterMap);

Modified: webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/client/RMIClientService1Test.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/client/RMIClientService1Test.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/client/RMIClientService1Test.java (original)
+++ webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/client/RMIClientService1Test.java Tue Aug 14 06:54:52 2007
@@ -16,6 +16,7 @@
 package org.apache.axis2.rmi.client;
 
 import org.apache.axis2.rmi.server.services.Service1;
+import org.apache.axis2.rmi.server.services.Service1Interface;
 import org.apache.axis2.AxisFault;
 
 import java.util.List;
@@ -26,31 +27,42 @@
 
 public class RMIClientService1Test extends TestCase {
 
-    public void testMethod11(){
+    public void testMethod11() {
+        try {
+            Service1Interface proxy = (Service1Interface) RMIClientProxy.createProxy(Service1Interface.class,
+                    "http://localhost:8085/axis2/services/Service1");
+            String result = proxy.method1("Hellow world");
+            assertEquals(result, "Hellow world");
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
+        }
+
+    }
+
+    public void testMethod12() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service1.class,
+            Service1Interface proxy = (Service1Interface) RMIClientProxy.createProxy(Service1Interface.class,
                     "http://localhost:8085/axis2/services/Service1");
-            List inputObject = new ArrayList();
-            inputObject.add("Hellow world");
-            String returnString = (String) rmiClient.invokeMethod("method1",inputObject);
-            assertEquals(returnString,"Hellow world");
-        } catch (Exception e) {
-            fail();
+            String result = proxy.method1(null);
+            assertEquals(result, null);
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
         }
+
     }
 
-    public void testMethod12(){
+    public void testMethod2() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service1.class,
+            Service1Interface proxy = (Service1Interface) RMIClientProxy.createProxy(Service1Interface.class,
                     "http://localhost:8085/axis2/services/Service1");
-            List inputObject = new ArrayList();
-            inputObject.add(null);
-            String returnString = (String) rmiClient.invokeMethod("method1",inputObject);
-            assertNull(returnString);
-        } catch (Exception e) {
-            fail();
+            String[] result = proxy.method2(new String[]{"param1","param2"});
+            assertEquals(result[0], "param1");
+            assertEquals(result[1], "param2");
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
         }
+
     }
 }

Modified: webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/databind/RequestResponseTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/databind/RequestResponseTest.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/databind/RequestResponseTest.java (original)
+++ webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/databind/RequestResponseTest.java Tue Aug 14 06:54:52 2007
@@ -53,7 +53,7 @@
               throws XMLStreamException, XmlSerializingException, XmlParsingException {
           StringWriter inputStringWriter = new StringWriter();
           XMLStreamWriter inputXmlStreamWriter = StAXUtils.createXMLStreamWriter(inputStringWriter);
-          this.javaObjectSerializer.serializeInputElement(inputObjects,
+          this.javaObjectSerializer.serializeInputElement(inputObjects.toArray(),
                   operation.getInputElement(),
                   operation.getInputParameters(),
                   inputXmlStreamWriter);

Modified: webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/ServerTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/ServerTest.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/ServerTest.java (original)
+++ webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/ServerTest.java Tue Aug 14 06:54:52 2007
@@ -36,8 +36,8 @@
 
 public class ServerTest {
 
-    public static final String AXIS2_CONFIG_FILE = "conf/axis2.xml";
-    public static final String AXIS2_REPOSITORY_LOCATION = "repository";
+    public static final String AXIS2_CONFIG_FILE = "modules/rmi/conf/axis2.xml";
+    public static final String AXIS2_REPOSITORY_LOCATION = "modules/rmi/repository";
 
     public void deployAndStartService() {
         try {

Modified: webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1.java (original)
+++ webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1.java Tue Aug 14 06:54:52 2007
@@ -16,7 +16,7 @@
 package org.apache.axis2.rmi.server.services;
 
 
-public class Service1 {
+public class Service1 implements Service1Interface {
 
     public String method1(String param1) {
         return param1;

Added: webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1Interface.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1Interface.java?view=auto&rev=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1Interface.java (added)
+++ webservices/axis2/trunk/java/modules/rmi/test/org/apache/axis2/rmi/server/services/Service1Interface.java Tue Aug 14 06:54:52 2007
@@ -0,0 +1,12 @@
+package org.apache.axis2.rmi.server.services;
+
+public interface Service1Interface {
+
+    public String method1(String param1);
+
+    public String[] method2(String[] param1);
+
+    public int mehtod3(int param1);
+
+    public int[] mehtod4(int[] param1);
+}

Modified: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService1.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService1.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService1.java (original)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService1.java Tue Aug 14 06:54:52 2007
@@ -16,11 +16,8 @@
 package sample.rmi.client;
 
 import org.apache.axis2.rmi.Configurator;
-import org.apache.axis2.rmi.client.RMIClient;
-import sample.rmi.server.Service1;
-
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.axis2.rmi.client.RMIClientProxy;
+import sample.rmi.server.Service1Interface;
 
 
 public class TestService1 {
@@ -36,28 +33,28 @@
 
     public void testMethod1() {
         try {
-            RMIClient rmiClient = new RMIClient(Service1.class, this.configurator, "http://localhost:8080/axis2/services/Service1");
-            List inputObjects = new ArrayList();
-            inputObjects.add("Hellow");
-            inputObjects.add(" World");
-            String result = (String) rmiClient.invokeMethod("method1", inputObjects);
+            Service1Interface proxy =
+                    (Service1Interface) RMIClientProxy.createProxy(Service1Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service1");
+            String result = proxy.method1("Hellow"," World");
             System.out.println("Result ==> " + result);
         } catch (Exception e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            e.printStackTrace();
         }
     }
 
     public void testMethod2() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service1.class, configurator, "http://localhost:8080/axis2/services/Service1");
-            List inputObjects = new ArrayList();
-            inputObjects.add(new Integer(5));
-            inputObjects.add(new Integer(15));
-            Integer result = (Integer) rmiClient.invokeMethod("method2", inputObjects);
+            Service1Interface proxy =
+                    (Service1Interface) RMIClientProxy.createProxy(Service1Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service1");
+            Integer result = proxy.method2(new Integer(5),new Integer(15));
             System.out.println("Result ==> " + result);
         } catch (Exception e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            e.printStackTrace();
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService2.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService2.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService2.java (original)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService2.java Tue Aug 14 06:54:52 2007
@@ -17,7 +17,10 @@
 
 import org.apache.axis2.rmi.Configurator;
 import org.apache.axis2.rmi.client.RMIClient;
+import org.apache.axis2.rmi.client.RMIClientProxy;
 import sample.rmi.server.Service2;
+import sample.rmi.server.Service1Interface;
+import sample.rmi.server.Service2Interface;
 import sample.rmi.server.dto.ChildClass;
 import sample.rmi.server.dto.ParentClass;
 import sample.rmi.server.dto.TestClass1;
@@ -41,14 +44,14 @@
     public void testMethod11() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service2.class, configurator, "http://localhost:8080/axis2/services/Service2");
-            List inputObjects = new ArrayList();
-
+            Service2Interface proxy =
+                    (Service2Interface) RMIClientProxy.createProxy(Service2Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service2");
             ParentClass parentClass = new ParentClass();
             parentClass.setParam1("test param1");
             parentClass.setParam2(10);
-            inputObjects.add(parentClass);
-            ParentClass result = (ParentClass) rmiClient.invokeMethod("method1", inputObjects);
+            ParentClass result = proxy.method1(parentClass);
             System.out.println("Result param 1 ==> " + result.getParam1());
             System.out.println("Result param 2 ==> " + result.getParam2());
         } catch (Exception e) {
@@ -59,16 +62,16 @@
     public void testMethod12() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service2.class, configurator, "http://localhost:8080/axis2/services/Service2");
-            List inputObjects = new ArrayList();
-
+            Service2Interface proxy =
+                    (Service2Interface) RMIClientProxy.createProxy(Service2Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service2");
             ChildClass childClass = new ChildClass();
             childClass.setParam1("test param1");
             childClass.setParam2(10);
             childClass.setParam3("test param3");
             childClass.setParam4(new Integer(12));
-            inputObjects.add(childClass);
-            ChildClass result = (ChildClass) rmiClient.invokeMethod("method1", inputObjects);
+            ChildClass result = (ChildClass) proxy.method1(childClass);
             System.out.println("Result param 1 ==> " + result.getParam1());
             System.out.println("Result param 2 ==> " + result.getParam2());
             System.out.println("Result param 3 ==> " + result.getParam3());
@@ -82,14 +85,14 @@
     public void testMethod2() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service2.class, configurator, "http://localhost:8080/axis2/services/Service2");
-            List inputObjects = new ArrayList();
-
+            Service2Interface proxy =
+                    (Service2Interface) RMIClientProxy.createProxy(Service2Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service2");
             TestClass1 testClass1 = new TestClass1();
             testClass1.setParam1("test param1");
             testClass1.setParma2("test param2");
-            inputObjects.add(testClass1);
-            TestClass1 result = (TestClass1) rmiClient.invokeMethod("method2", inputObjects);
+            TestClass1 result = proxy.method2(testClass1);
             System.out.println("Result param 1 ==> " + result.getParam1());
             System.out.println("Result param 2 ==> " + result.getParma2());
         } catch (Exception e) {

Modified: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService3.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService3.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService3.java (original)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService3.java Tue Aug 14 06:54:52 2007
@@ -16,11 +16,15 @@
 package sample.rmi.client;
 
 import sample.rmi.server.Service3;
+import sample.rmi.server.Service2Interface;
+import sample.rmi.server.Service3Interface;
 import sample.rmi.server.exception.Exception1;
 import sample.rmi.server.exception.Exception2;
 import sample.rmi.server.exception.Exception3;
 import org.apache.axis2.rmi.Configurator;
 import org.apache.axis2.rmi.client.RMIClient;
+import org.apache.axis2.rmi.client.RMIClientProxy;
+import org.apache.axis2.AxisFault;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -40,48 +44,56 @@
     public void testMethod1() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service3.class, configurator, "http://localhost:8080/axis2/services/Service3");
-            List inputObjects = new ArrayList();
-            rmiClient.invokeMethod("method1", inputObjects);
-        } catch (Exception e) {
-            if (e instanceof Exception1) {
-                System.out.println("Got the exception 1");
-            } else {
-                e.printStackTrace();
-            }
+            Service3Interface proxy =
+                    (Service3Interface) RMIClientProxy.createProxy(Service3Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service3");
+            proxy.method1();
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
+        } catch (Exception1 exception1) {
+            System.out.println("Got the exception 1");
         }
+
     }
 
     public void testMethod2() {
 
+
         try {
-            RMIClient rmiClient = new RMIClient(Service3.class, configurator, "http://localhost:8080/axis2/services/Service3");
-            List inputObjects = new ArrayList();
-            inputObjects.add("test string");
-            rmiClient.invokeMethod("method2", inputObjects);
-        } catch (Exception e) {
-            if (e instanceof Exception2) {
-                System.out.println("Got the exception 2");
-            } else {
-                e.printStackTrace();
-            }
+            Service3Interface proxy =
+                    (Service3Interface) RMIClientProxy.createProxy(Service3Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service3");
+            proxy.method2("test string");
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
+        } catch (Exception2 exception2) {
+            System.out.println("Got the exception 2");
+        } catch (Exception1 exception1) {
+            exception1.printStackTrace();
         }
+
     }
 
     public void testMethod3() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service3.class, configurator, "http://localhost:8080/axis2/services/Service3");
-            List inputObjects = new ArrayList();
-            inputObjects.add(new Integer(5));
-            rmiClient.invokeMethod("method3", inputObjects);
-        } catch (Exception e) {
-            if (e instanceof Exception3) {
-                System.out.println("Got the exception 3");
-            } else {
-                e.printStackTrace();
-            }
+            Service3Interface proxy =
+                    (Service3Interface) RMIClientProxy.createProxy(Service3Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service3");
+            proxy.method3(5);
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();
+        } catch (Exception3 exception3) {
+            System.out.println("Got the exception 3");
+        } catch (Exception2 exception2) {
+            exception2.printStackTrace();
+        } catch (Exception1 exception1) {
+            exception1.printStackTrace();
         }
+
     }
 
     public static void main(String[] args) {

Modified: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService4.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService4.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService4.java (original)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/client/TestService4.java Tue Aug 14 06:54:52 2007
@@ -16,10 +16,13 @@
 package sample.rmi.client;
 
 import sample.rmi.server.Service4;
+import sample.rmi.server.Service3Interface;
+import sample.rmi.server.Service4Interface;
 import sample.rmi.server.dto.ChildClass;
 import sample.rmi.server.dto.ParentClass;
 import org.apache.axis2.rmi.Configurator;
 import org.apache.axis2.rmi.client.RMIClient;
+import org.apache.axis2.rmi.client.RMIClientProxy;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -41,30 +44,25 @@
     public void testMethod11() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service4.class, this.configurator, "http://localhost:8080/axis2/services/Service4");
-            List inputObjects = new ArrayList();
-            inputObjects.add(null);
-            Object result = rmiClient.invokeMethod("method1", inputObjects);
+            Service4Interface proxy =
+                    (Service4Interface) RMIClientProxy.createProxy(Service4Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service4");
+            Object result = proxy.method1(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
 
-        try {
-            RMIClient rmiClient = new RMIClient(Service4.class, this.configurator, "http://localhost:8080/axis2/services/Service4");
-            List inputObjects = new ArrayList();
-            Object result = rmiClient.invokeMethod("method1", inputObjects);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
     }
 
     public void testMethod12() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service4.class, this.configurator, "http://localhost:8080/axis2/services/Service4");
-            List inputObjects = new ArrayList();
-            inputObjects.add("test string");
-            Object result = rmiClient.invokeMethod("method1", inputObjects);
+            Service4Interface proxy =
+                    (Service4Interface) RMIClientProxy.createProxy(Service4Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service4");
+            Object result = proxy.method1("test string");
             System.out.println("Got the string " + result);
         } catch (Exception e) {
             e.printStackTrace();
@@ -74,13 +72,15 @@
     public void testMethod13() {
 
         try {
-            RMIClient rmiClient = new RMIClient(Service4.class, this.configurator, "http://localhost:8080/axis2/services/Service4");
-            List inputObjects = new ArrayList();
+            Service4Interface proxy =
+                    (Service4Interface) RMIClientProxy.createProxy(Service4Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service4");
+
             ParentClass parentClass = new ParentClass();
             parentClass.setParam1("test string");
             parentClass.setParam2(3);
-            inputObjects.add(parentClass);
-            ParentClass result = (ParentClass) rmiClient.invokeMethod("method1", inputObjects);
+            ParentClass result = (ParentClass) proxy.method1(parentClass);
             System.out.println("Param 1 ==>" + result.getParam1());
             System.out.println("Param 2 ==>" + result.getParam2());
         } catch (Exception e) {
@@ -90,12 +90,11 @@
 
     public void testMethod3() {
         try {
-            RMIClient rmiClient = new RMIClient(Service4.class, this.configurator, "http://localhost:8080/axis2/services/Service4");
-            List inputObjects = new ArrayList();
-            inputObjects.add("Param1");
-            inputObjects.add("Param2");
-            inputObjects.add("Param3");
-            String[] result = (String[]) rmiClient.invokeMethod("method3", inputObjects);
+            Service4Interface proxy =
+                    (Service4Interface) RMIClientProxy.createProxy(Service4Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service4");
+            String[] result = proxy.method3("Param1","Param2","Param3");
             System.out.println("Object 1 ==>" + result[0]);
             System.out.println("Object 2 ==>" + result[1]);
             System.out.println("Object 3 ==>" + result[2]);
@@ -107,8 +106,10 @@
 
     public void testMethod2() {
         try {
-            RMIClient rmiClient = new RMIClient(Service4.class, this.configurator, "http://localhost:8080/axis2/services/Service4");
-            List inputObjects = new ArrayList();
+             Service4Interface proxy =
+                    (Service4Interface) RMIClientProxy.createProxy(Service4Interface.class,
+                            this.configurator,
+                            "http://localhost:8080/axis2/services/Service4");
 
             List param1 = new ArrayList();
             param1.add(new ChildClass());
@@ -118,10 +119,7 @@
             param2.add(new ParentClass());
             param2.add(new Float(2.34f));
 
-            inputObjects.add(param1);
-            inputObjects.add(param2);
-
-            List result = (List) rmiClient.invokeMethod("method2", inputObjects);
+            List result = proxy.method2(param1,param2);
             System.out.println("Object 1 ==>" + result.get(1));
             System.out.println("Object 3 ==>" + result.get(3));
 

Modified: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1.java (original)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1.java Tue Aug 14 06:54:52 2007
@@ -15,7 +15,7 @@
  */
 package sample.rmi.server;
 
-public class Service1 {
+public class Service1 implements Service1Interface {
 
     public String method1(String param1, String param2){
         return param1 + param2;

Added: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1Interface.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1Interface.java?view=auto&rev=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1Interface.java (added)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service1Interface.java Tue Aug 14 06:54:52 2007
@@ -0,0 +1,12 @@
+package sample.rmi.server;
+
+/**
+ * Author: amila
+ * Date: Aug 14, 2007
+ */
+public interface Service1Interface {
+    
+    public String method1(String param1, String param2);
+
+    public int method2(int param1, int param2);
+}

Modified: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2.java (original)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2.java Tue Aug 14 06:54:52 2007
@@ -19,7 +19,7 @@
 import sample.rmi.server.dto.TestClass1;
 
 
-public class Service2 {
+public class Service2 implements Service2Interface {
     
     public ParentClass method1(ParentClass param1){
         return param1;

Added: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2Interface.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2Interface.java?view=auto&rev=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2Interface.java (added)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service2Interface.java Tue Aug 14 06:54:52 2007
@@ -0,0 +1,12 @@
+package sample.rmi.server;
+
+import sample.rmi.server.dto.ParentClass;
+import sample.rmi.server.dto.TestClass1;
+
+
+public interface Service2Interface {
+
+    public ParentClass method1(ParentClass param1);
+
+    public TestClass1 method2(TestClass1 param1);
+}

Modified: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3.java (original)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3.java Tue Aug 14 06:54:52 2007
@@ -19,7 +19,7 @@
 import sample.rmi.server.exception.Exception2;
 import sample.rmi.server.exception.Exception3;
 
-public class Service3 {
+public class Service3 implements Service3Interface {
 
     public void method1() throws Exception1 {
         throw new Exception1("Test Exception1");

Added: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3Interface.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3Interface.java?view=auto&rev=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3Interface.java (added)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service3Interface.java Tue Aug 14 06:54:52 2007
@@ -0,0 +1,15 @@
+package sample.rmi.server;
+
+import sample.rmi.server.exception.Exception1;
+import sample.rmi.server.exception.Exception2;
+import sample.rmi.server.exception.Exception3;
+
+
+public interface Service3Interface {
+    
+    public void method1() throws Exception1;
+
+    public String method2(String param1) throws Exception2, Exception1;
+
+    public int method3(int param1) throws Exception3, Exception2, Exception1;
+}

Modified: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4.java?view=diff&rev=565760&r1=565759&r2=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4.java (original)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4.java Tue Aug 14 06:54:52 2007
@@ -18,7 +18,7 @@
 import java.util.List;
 
 
-public class Service4 {
+public class Service4 implements Service4Interface {
 
     public Object method1(Object param1){
         return param1;

Added: webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4Interface.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4Interface.java?view=auto&rev=565760
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4Interface.java (added)
+++ webservices/axis2/trunk/java/modules/samples/rmi/src/sample/rmi/server/Service4Interface.java Tue Aug 14 06:54:52 2007
@@ -0,0 +1,12 @@
+package sample.rmi.server;
+
+import java.util.List;
+
+
+public interface Service4Interface {
+    public Object method1(Object param1);
+
+    public List method2(List param1, List param2);
+
+    public String[] method3(String param1,String param2,String param3);
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org