XML-PRC的入门级程序(JAVA)
刚没很多事,写了个XML-PRC的入门级程序
总算是也给调通了,下载地址:http://download.csdn.net/source/1534837
简单的步骤:
1.新建一个web工程(导入rpc需要的包)
2.新建一个方法类,如:SayHello.java,在com.potevio.telecom.rpc.test包下
3.在方法类中写自己的方法,如:sayHello,add等
4.新建一个属性文件:XmlRpcServlet.properties,在不改变apache的源代码下,
必须是在org.apache.xmlrpc.webserver这个目录里面
5.在属性文件中配置自己写的调用方法,格式是:被客户端调用的名字=类的路径,如:
SayHello=com.potevio.telecom.rpc.test.SayHello
6.在配置文件中发布这个服务,简单的做法是将下面的代码添加到web.xml中
<servlet>
<servlet-name>XmlRpcServlet</servlet-name>
<servlet-class>org.apache.xmlrpc.webserver.XmlRpcServlet</servlet-class>
<init-param>
<param-name>enabledForExtensions</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>XmlRpcServlet</servlet-name>
<url-pattern>/xmlrpc</url-pattern>
</servlet-mapping>
到这里,服务端完成,接下来是客户端的编写
7.新建一个客户端测试类,如:RpcClient.java,里面的代码有简单注解
8.运行测试。
(1)部署工程,启动服务端
(2)运行客户端
补充:
进入官方网站
代码:下载
--------------------------------------------------------------------------------------------------
不想下载的下面有几个类的完整代码:
RpcClient.java
2
3 import java.net.MalformedURLException;
4 import java.net.URL;
5
6 import org.apache.xmlrpc.XmlRpcException;
7 import org.apache.xmlrpc.client.XmlRpcClient;
8 import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
9
10 /**
11 * @description 客户端测试类
12 * @author ZhouJingxian
13 *
14 */
15 public class RpcClient {
16
17 /**
18 * @param args
19 */
20 public static void main(String[] args) {
21
22 XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
23
24 try {
25 //注意这个地址,后面的是在web.xml中发布的服务名称xmlrpc
26 config.setServerURL(new URL("http://127.0.0.1:8000/RPCFirstProject/xmlrpc"));
27 XmlRpcClient client = new XmlRpcClient();
28 client.setConfig(config);
29
30 System.out.println("expected output:");
31
32 Object[] userName = new Object[]{"boys and girls"};
33 String returnStr = (String)client.execute("SayHello.sayHello",userName);
34
35 System.out.println("sayHello:"+returnStr);
36
37 Object[] params = new Object[]{new Integer(1),new Integer(2)};
38 Integer returnAdd = (Integer)client.execute("SayHello.add", params);
39 System.out.println("add value:"+ returnAdd);
40 }
41 catch (MalformedURLException e) {
42 e.printStackTrace();
43 } catch (XmlRpcException e) {
44 e.printStackTrace();
45 }
46 }
47 }
48
SayHello.java
2
3 /**
4 * @description 方法类
5 * @author ZhouJingxian
6 *
7 */
8 public class SayHello {
9
10 public String sayHello(String userName){
11 return "Hi!"+ userName;
12 }
13
14 public int add(int a,int b){
15 return a + b;
16 }
17 }
18