




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层,RPC使得开发网络分布式多程序更加容易。本文档使用Apache XML-RPC。下载地址:/apache-mirror/ws/xmlrpc/Jar包列表:commons-codec-1.4.jarcommons-httpclient-3.0.1.jarcommons-logging-1.1.jarws-commons-util-1.0.2.jarxmlrpc-client-3.1.3.jarxmlrpc-common-3.1.3.jarxmlrpc-properties.jarxmlrpc-server-3.1.3.jar代码分为四部分:rpc服务器端代码、被执行的类、rpc配置文件(myHperties)、rpc客户端代码rpc配置文件应该放在build path指定的路径下,比如src文件夹下。具体代码如下:rpc服务器端代码server.javaimport org.apache.xmlrpc.XmlRpcRequest;import mon.XmlRpcHttpRequestConfig;import org.apache.xmlrpc.server.AbstractReflectiveHandlerMapping;import org.apache.xmlrpc.server.PropertyHandlerMapping;import org.apache.xmlrpc.server.XmlRpcServer;import org.apache.xmlrpc.server.XmlRpcServerConfigImpl;import org.apache.xmlrpc.webserver.WebServer;public class Server private static final int port = 8399; public static void main(String args) throws Exception /RPC服务 WebServer webServer = new WebServer(port); XmlRpcServer xmlRpcServer = webServer.getXmlRpcServer(); PropertyHandlerMapping phm = new PropertyHandlerMapping(); /验证权限 AbstractReflectiveHandlerMapping.AuthenticationHandler handler = new AbstractReflectiveHandlerMapping.AuthenticationHandler() public boolean isAuthorized(XmlRpcRequest pRequest) XmlRpcHttpRequestConfig config = (XmlRpcHttpRequestConfig) pRequest.getConfig(); return isAuthenticated(config.getBasicUserName(), config.getBasicPassword(); ; ; phm.setAuthenticationHandler(handler); /* Load handler definitions from a property file. * The property file might look like: * myHandler=com.huan.RPC.MyHandler */ phm.load(Thread.currentThread().getContextClassLoader(), myHperties); /* You may also provide the handler classes directly, * like this: * phm.addHandler(myHandler, * com.huan.RPC.MyHandler); */ xmlRpcServer.setHandlerMapping(phm); XmlRpcServerConfigImpl serverConfig = (XmlRpcServerConfigImpl) xmlRpcServer.getConfig(); serverConfig.setEnabledForExtensions(true); serverConfig.setContentLengthOptional(false); webServer.start(); /用户名和密码验证 private static boolean isAuthenticated(String pUserName, String pPassword) return foo.equals(pUserName) & bar.equals(pPassword); 被执行类MyHandler.javapublic class MyHandler public String sayHello(String str)return Hello, + str;myHperties 文件myHandler=com.huan.RPC.MyHandle客户端代码:import .URL;import org.apache.xmlrpc.XmlRpcException;import org.apache.xmlrpc.XmlRpcRequest;import org.apache.xmlrpc.client.XmlRpcClient;import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;import mon.XmlRpcHttpRequestConfig;import org.apache.xmlrpc.server.AbstractReflectiveHandlerMapping;import org.apache.xmlrpc.server.PropertyHandlerMapping;import org.apache.xmlrpc.server.XmlRpcHandlerMapping;import org.apache.xmlrpc.webserver.XmlRpcServlet;public class Client extends XmlRpcServlet public static void main(String args) throws Exception / create configuration XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); /xmlrpc服务在web.xml中配置 config.setServerURL(new URL(:8399/xmlrpc); config.setEnabledForExtensions(true); config.setConnectionTimeout(60 * 1000); config.setReplyTimeout(60 * 1000); /设置用户名和密码 config.setBasicUserName(foo); config.setBasicPassword(bar); XmlRpcClient client = new XmlRpcClient(); / use Commons HttpClient as transport client.setTransportFactory( new XmlRpcCommonsTransportFactory(client); / set configuration client.setConfig(config); / make the a regular call Object params = new Object Tom ; /调用服务器端sayHello方法 String result = (St
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年区块链金融行业应用前景研究报告
- 2025年医疗健康行业智能医疗设备市场前景展望报告
- 国家事业单位招聘2025国家海洋标准计量中心招聘应届毕业生拟聘人员笔试历年参考题库附带答案详解
- 吉林省2025年吉林白城通榆县事业单位引进急需紧缺人才笔试历年参考题库附带答案详解
- 南宁市2025广西南宁市青秀区委政法委招聘2人笔试历年参考题库附带答案详解
- 克拉玛依市2025新疆克拉玛依市企事业单位高层次急需紧缺人才引进(493人)笔试历年参考题库附带答案详解
- 乌兰察布市2025内蒙古乌兰察布市四子王旗高层次和紧缺急需人才引进46人笔试历年参考题库附带答案详解
- 2025重庆国咨数据服务有限公司招聘18人笔试参考题库附带答案详解
- 2025甘肃张掖市发展投资集团有限公司招聘专业技术人员6人笔试参考题库附带答案详解
- 2025河南空港数字城市开发建设有限公司第一批社会招聘20人笔试参考题库附带答案详解
- 民兵学习护路知识课件
- 危重患者皮肤管理课件
- 2025年国防教育知识竞赛试题(附答案)
- 工伤受伤经过简述如何写
- 银行现金取款申请书
- 人事外包招聘代理合同
- 数字经济学-课件 第3章 数字技术
- AI引领时尚设计新潮-个性化需求的新一代解决方案
- 高二数学直线倾斜角与斜率同步练习题
- 2024-2030年全球及中国热障涂层(TBC)行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 大轻质泡沫混凝土研究报告
评论
0/150
提交评论