diff options
Diffstat (limited to 'rpctest/src/main/java/com')
-rw-r--r-- | rpctest/src/main/java/com/orbekk/App.java | 13 | ||||
-rw-r--r-- | rpctest/src/main/java/com/orbekk/Calculator.java | 5 | ||||
-rw-r--r-- | rpctest/src/main/java/com/orbekk/CalculatorImpl.java | 7 | ||||
-rw-r--r-- | rpctest/src/main/java/com/orbekk/Client.java | 27 | ||||
-rw-r--r-- | rpctest/src/main/java/com/orbekk/ServerTest.java | 51 |
5 files changed, 103 insertions, 0 deletions
diff --git a/rpctest/src/main/java/com/orbekk/App.java b/rpctest/src/main/java/com/orbekk/App.java new file mode 100644 index 0000000..8459172 --- /dev/null +++ b/rpctest/src/main/java/com/orbekk/App.java @@ -0,0 +1,13 @@ +package com.orbekk; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/rpctest/src/main/java/com/orbekk/Calculator.java b/rpctest/src/main/java/com/orbekk/Calculator.java new file mode 100644 index 0000000..8fda63c --- /dev/null +++ b/rpctest/src/main/java/com/orbekk/Calculator.java @@ -0,0 +1,5 @@ +package com.orbekk; + +interface Calculator { + int add(int x, int y); +} diff --git a/rpctest/src/main/java/com/orbekk/CalculatorImpl.java b/rpctest/src/main/java/com/orbekk/CalculatorImpl.java new file mode 100644 index 0000000..5540f3a --- /dev/null +++ b/rpctest/src/main/java/com/orbekk/CalculatorImpl.java @@ -0,0 +1,7 @@ +package com.orbekk; + +public class CalculatorImpl implements Calculator { + public int add(int x, int y) { + return x + y; + } +} diff --git a/rpctest/src/main/java/com/orbekk/Client.java b/rpctest/src/main/java/com/orbekk/Client.java new file mode 100644 index 0000000..dca3018 --- /dev/null +++ b/rpctest/src/main/java/com/orbekk/Client.java @@ -0,0 +1,27 @@ +package com.orbekk; + +import java.net.URL; +import org.apache.log4j.Logger; +import org.apache.xmlrpc.client.XmlRpcClient; +import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; +import org.apache.xmlrpc.client.util.ClientFactory; + +public class Client { + public static void main(String[] args) throws Exception { + Logger logger = Logger.getLogger("Client"); + logger.info("Client starting."); + XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); + config.setServerURL(new URL("http://localhost:10080/xmlrpc")); + XmlRpcClient client = new XmlRpcClient(); + client.setConfig(config); + ClientFactory factory = new ClientFactory(client); + Calculator calculator = (Calculator)factory.newInstance( + Calculator.class); + int sum = calculator.add(40, 2); + for (int i = 0; i < 100; i++) { + sum = calculator.add(40, 2); + } + System.out.println("The answer is " + sum); + logger.info("Client finished."); + } +} diff --git a/rpctest/src/main/java/com/orbekk/ServerTest.java b/rpctest/src/main/java/com/orbekk/ServerTest.java new file mode 100644 index 0000000..e8c9a3e --- /dev/null +++ b/rpctest/src/main/java/com/orbekk/ServerTest.java @@ -0,0 +1,51 @@ +package com.orbekk; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import org.apache.xmlrpc.XmlRpcException; +import org.apache.xmlrpc.server.PropertyHandlerMapping; +import org.apache.xmlrpc.server.XmlRpcHandlerMapping; +import org.apache.xmlrpc.webserver.ServletWebServer; +import org.apache.xmlrpc.webserver.XmlRpcServlet; + +public class ServerTest { + final static int port = 10080; + + public static class HandlerServlet extends XmlRpcServlet { + private XmlRpcHandlerMapping mapping; + + public HandlerServlet(XmlRpcHandlerMapping mapping) + throws ServletException { + this.mapping = mapping; + } + + @Override + protected XmlRpcHandlerMapping newXmlRpcHandlerMapping() + throws XmlRpcException { + return mapping; + } + } + + public static void main(String[] args) { + System.out.println("Starting " + ServerTest.class.getName()); + try { + PropertyHandlerMapping phm = new PropertyHandlerMapping(); + phm.setVoidMethodEnabled(true); + phm.addHandler(Calculator.class.getName(), CalculatorImpl.class); + + XmlRpcServlet servlet = new HandlerServlet(phm); + ServletWebServer server = new ServletWebServer(servlet, port); + server.start(); + } catch (XmlRpcException e) { + System.err.println("Error creating property mapping."); + e.printStackTrace(); + } catch (ServletException e) { + System.err.println("Unable to initialize servlet."); + e.printStackTrace(); + } catch (IOException e) { + System.err.println("Exception from web server."); + e.printStackTrace(); + } + } +} |