- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java RPC通信机制之XML-RPC
Java RPC通信机制之XML-RPC
二、举例
下面举一个实际运用XML-RPC进行RPC调用的例子,XML-RPC规范有多种针对不同语言的实现,这里我们使用的是Apache的XML-RPC3.0RC1。
在开始之前,需到/commons/index.html下载如下程序包:
commons-codec-1.3(通用编码/解码算法实现,可参考/Java/Article/29795/1954?pf=true或/commons/codec/userguide.html来获得该软件包的详细信息)
commons-httpclient-3.0.1(HTTP协议的客户端编程工具包,详细介绍见/developerworks/cn/opensource/os-httpclient/)
将上述通用工具包解压后,拷贝其中的jar文件到XML-RPC解压目录的dist目录中。
并添加如下环境变量:
XMLRPC_HOME XML-RPC的解压目录
XMLRPC_LIB %XMLRPC_HOME%/dist
XMLRPCCLASSPATH %XMLRPC_LIB%/xmlrpc-common-3.0rc1.jar;%XMLRPC_LIB%/xmlrpc-server-3.0rc1.jar;%XMLRPC_LIB%/xmlrpc-client-3.0rc1.jar;%XMLRPC_LIB%/commons-httpclient-3.0.1.jar;%XMLRPC_LIB%/commons-codec-1.3.jar
整个应用很简单,通过XML-RPC调用Server端提供的HelloHandler.sayHello方法回显一个字符串信息。下面是HelloHandler接口及其实现类相关代码:
// HelloHandler.java
package demo.xmlrpc;
public interface HelloHandler {
public String sayHello(String str);
}
// HelloHandlerImpl.java
package demo.xmlrpc;
public class HelloHandlerImpl implements HelloHandler {
public String sayHello(String str){
return Hello, + str + !;
}
}
以下是对应的Server端源代码:
// Server1.java
package demo.xmlrpc;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.server.PropertyHandlerMapping;
import org.apache.xmlrpc.server.XmlRpcServerConfigImpl;
import org.apache.xmlrpc.webserver.XmlRpcServletServer;
public class Server1 extends HttpServlet {
private XmlRpcServletServer server;
public void init(ServletConfig pConfig) throws ServletException {
super.init(pConfig);
try {
// create a new XmlRpcServletServer object
server = new XmlRpcServletServer();
// set up handler mapping of XmlRp
文档评论(0)