xml-rpc 2.0介绍:
1、运行在不同操作系统、不同环境
2、使用http作为传输协议
3、xml作为传送信息的编码格式
xml-rpc是一种简单的,轻量级的通过HTTP协议进行RPC通信的规范。一个xml-rpc消息就是一个请求
体为xml的HTTP-POST请求,被调用的方法在服务器端执行并将执行结果以xml格式编码后返回。
xml-rpc 2.0实例:
服务端类
public class MyXmlRpcServer extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
XmlRpcServer xmlRpc=new XmlRpcServer();
xmlRpc.addHandler("myHandler", new MyHandler());
byte [] result=xmlRpc.execute(req.getInputStream());
resp.setContentType("text/xml");
resp.setContentLength(result.length);
OutputStream outputStream=resp.getOutputStream();
outputStream.write(result);
outputStream.flush();
outputStream.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
配置
<servlet>
<servlet-name>MyXmlRpcServer</servlet-name>
<servlet-class>xiu.rpc.MyXmlRpcServer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyXmlRpcServer</servlet-name>
<url-pattern>/MyXmlRpcServer</url-pattern>
</servlet-mapping>
测试
public class MyXmlRpcClient {
/**
* @param args
*/
public static void main(String[] args) {
try {
XmlRpcClient xmlrpc = new XmlRpcClient("http://127.0.0.1:8080/rpc/MyXmlRpcServer");
Vector params = new Vector();
params.addElement("Tom");
String result = (String) xmlrpc.execute("myHandler.sayHello",params);
System.out.println(result);
} catch (MalformedURLException e) {
System.out.println(e.toString());
} catch (XmlRpcException e) {
System.out.println(e.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
rpc 3.0 写servlet
实例:
public class HelloHandler {
public String sayHello(String str){
return str;
}
}
服务:
public class Server extends HttpServlet {
private XmlRpcServletServer xmlRpc;
public void init(ServletConfig config)throws ServletException{
super.init(config);
xmlRpc=new XmlRpcServletServer();
PropertyHandlerMapping phm=new PropertyHandlerMapping();
try {
phm.addHandler("HelloHandler", xiu.com.HelloHandler.class);
xmlRpc.setHandlerMapping(phm);
XmlRpcServerConfigImpl serverConfig=(XmlRpcServerConfigImpl)xmlRpc.getConfig();
serverConfig.setEnabledForExtensions(true);
serverConfig.setContentLengthOptional(false);
} catch (XmlRpcException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
xmlRpc.execute(req, resp);
}
}
测试:
public class xmlRpcClient {
/**
* @param args
*/
public static void main(String[] args) {
XmlRpcClientConfigImpl config=new XmlRpcClientConfigImpl();
try {
config.setServerURL(new URL("http://127.0.0.1:8080/rpc3/xmlrpc"));
XmlRpcClient client=new XmlRpcClient();
client.setConfig(config);
Vector<String> param=new Vector<String>();
param.add("tom");
String result=(String) client.execute("HelloHandler.sayHello", param);
System.out.println("result:"+result);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (XmlRpcException e) {
e.printStackTrace();
}
}
}
<servlet>
<servlet-name>XmlRpcServer</servlet-name>
<servlet-class>xiu.rpc.Server</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XmlRpcServer</servlet-name>
<url-pattern>/sayHello</url-pattern>
</servlet-mapping>
rpc 3.0 不写servlet,用属性文件来配置javabean
1、创建javabean
2、配置javabean
3、client调用
rpc 3.0 通过属性文件来配置服务,还是很方便的
分享到:
相关推荐
2. **客户端**:在客户端,使用XML-RPC客户端API(如`org.apache.xmlrpc.client.XmlRpcClient`)创建一个客户端实例,配置服务器的URL,然后就可以调用服务器端注册的方法。 3. **数据交换**:XML-RPC使用XML格式来...
这个压缩包包含了DWR的三个关键组件:DWR3.0.jar,DWR的实例war文件,以及DWR2.0的中文说明文档。以下是关于这些组件的详细知识: 1. **DWR3.0.jar**: DWR3.0.jar是DWR框架的核心库,包含所有必需的类和接口,...
- JAX-RPC(Java API for XML-based RPC)用于创建基于SOAP的Web服务。 - JAX-WS(Java API for XML Web Services)提供了一种基于WSDL的Web服务开发模型。 ### 6. 其他组件和服务 J2EE 1.4还包括了EJB...
使用JSP进行数据访问 访问数据 范例应用程序 深入性主题 小结 第17章 分析和生成XML 文档和数据 XML概述 Java XML技术 生成XML 读取XML 小结 第18章 WAP客户机 WAP概览 ...
如果您的计算机已安装 SQL Server 2000 管理工具和 SQL Server Express 的默认实例,则可以使用 SQL Server 安装程序安装 SQL Server 2000 的默认实例。但是,这样做会禁用已安装的 SQL Server Express 实例。因此,...