当前位置: 首页 > news >正文

工艺品商城网站建设/信息流广告优秀案例

工艺品商城网站建设,信息流广告优秀案例,营销型网站模板,代理加盟网原文地址:RMI网络编程开发之二 如何搭建基于JDK1.5的分布式JAVA RMI 程序 这里讲述的是基于JDK1.5的RMI程序搭建,更简单的说是一个 HelloWorld RMI。 1. 这里是基于JDK1.5的,节省了繁琐的手工编译(生成桩和骨架)。不…

原文地址:RMI网络编程开发之二 如何搭建基于JDK1.5的分布式JAVA RMI 程序

这里讲述的是基于JDK1.5的RMI程序搭建,更简单的说是一个 HelloWorld RMI。
1. 这里是基于JDK1.5的,节省了繁琐的手工编译(生成桩和骨架)。不像1.4之前的RMI。
2. 这里是把客户端和服务器端的两个程序,分布在两个独立的程序里面,而不是同一个package下面。是真正的分布式。
3. 这里不过多阐述原理,这只是一个Hello World!!
好,以下是步骤:

  1. 在Eclipse里面创建一个server 端的project。然后,创建一个接口,这个接口是你要向client端开放的方法定义。它叫做:UserManagerInterface,而且必须继承Remote接口。
package dataserver.rmi.stub; import java.rmi.Remote; 
import java.rmi.RemoteException; import dataserver.rmi.bean.Account; public interface UserManagerInterface extends Remote{ public String getUserName() throws RemoteException; public Account getAdminAccount() throws RemoteException; 
} 
  1. 为了证明RMI中,“面向对象”或者是“无缝传递JAVA Object”是何等简单,我们需要定义一个Account类,该类是一个Bean,必须实现implements Serializable序列化接口。这是一个可以在client和server传输的可序列化对象。
package dataserver.rmi.bean; import java.io.Serializable; public class Account implements Serializable,Cloneable{ /** *  */ private static final long serialVersionUID = -1858518369668584532L; private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 
  1. 此时,需要实现你已经开放的接口:
package dataserver.rmi; import java.rmi.RemoteException; import dataserver.rmi.bean.Account; 
import dataserver.rmi.stub.UserManagerInterface; public class UserManagerImpl implements UserManagerInterface { public UserManagerImpl() throws RemoteException { //super(); // TODO Auto-generated constructor stub //UnicastRemoteObject.exportObject(this); } /** *  */ private static final long serialVersionUID = -3111492742628447261L; public String getUserName() throws RemoteException { // TODO Auto-generated method stub return "Tommy Lee"; } public Account getAdminAccount() throws RemoteException { // TODO Auto-generated method stub Account account=new Account(); account.setUsername("admin"); account.setPassword("admin"); return account; } } 
  1. 定义一个主程序入口,注册你已经实现的RMI接口,包括开放端口等。其实很简单:
    把我们的接口名称,命名为“userManager”,方便client进行调用
package dataserver.entry; import java.rmi.AlreadyBoundException; 
import java.rmi.RemoteException; 
import java.rmi.registry.LocateRegistry; 
import java.rmi.registry.Registry; 
import java.rmi.server.UnicastRemoteObject; import dataserver.rmi.UserManagerImpl; 
import dataserver.rmi.stub.UserManagerInterface; public class Entry { public static void main(String []args) throws AlreadyBoundException, RemoteException{ UserManagerImpl userManager=new UserManagerImpl(); UserManagerInterface userManagerI=(UserManagerInterface)UnicastRemoteObject.exportObject(userManager,0); // Bind the remote object's stub in the registry Registry registry = LocateRegistry.createRegistry(2001); registry.rebind("userManager", userManagerI); System.out.println("server is ready"); } 
} 
  1. Server端的代码已经全部写完,但是还要把bean类(Account)和接口类(UserMangerInterface)打包成jar,以便可以在下面导入进client端的项目中。
    项目–》右键–》导出–》jar–》选择bean和interface–》命名为RmiServerInterface.jar–》finish
    这里写图片描述
  2. 开始创建client端的程序。新建一个project。创建完成后,把刚才jar包导入进client的项目中。
  3. 导入我们的接口jar以后,可以开始编写一个client端的主程序,并调用server端的方法。
package weiblog.rmi; 
import java.rmi.NotBoundException; 
import java.rmi.RemoteException; 
import java.rmi.registry.LocateRegistry; 
import java.rmi.registry.Registry; import dataserver.rmi.stub.UserManagerInterface; public class Entry2 { public static void main(String []args){ try { Registry registry = LocateRegistry.getRegistry("localhost",2001); UserManagerInterface userManager = (UserManagerInterface) registry.lookup("userManager"); System.out.println(""+userManager.getAdminAccount().getUsername() +userManager.getAdminAccount().getPassword()); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NotBoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 
} 
  1. 启动server端的主程序,然后启动client端的主程序。
    server控制台打印:server is ready
    client控制台打印:adminadmin
    大功告成!!
    附注:大家可以在博客左下方点击下载相应的源代码。
http://www.lbrq.cn/news/814969.html

相关文章:

  • 发表评论的wordpress网站模板/无锡网站优化公司
  • 南城网站仿做/怎么做网络推广
  • 国外用tornado做的网站/学生个人网页制作
  • 百度推广引流/百度seo优化分析
  • 一个网站绑定2个域名/地推公司
  • 有没有教做网站实例视频/武汉seo霸屏
  • 做外文翻译的网站/seo如何优化网站
  • 怀柔区住房和城乡建设委员会网站/如何让百度搜索到自己的网站
  • 有关网站建设的视频/抖音运营推广策划方案
  • 免费学习做网站/竞价托管代运营公司
  • wordpress a 登录/网站页面优化包括
  • 徐州网站建设公司哪个好/网络营销的基本职能
  • 网站建站的流程/平面设计培训
  • 区政府网站建设方案/seo积分优化
  • 论文 网站建设可行性/网络平台销售
  • 免费永久个人网站注册/职业技能培训中心
  • 山西建设厅网站2016年3号文件/网络营销的发展历程
  • SEO网站布局优化/个人网站制作软件
  • 建站策划设计公司/推广之家官网
  • jeecms官网/武汉seo公司排名
  • 网站开发西安/学校网站建设哪家好
  • 给大家科普一下b站推广网站/网络广告形式
  • dreamweaver网站建设教程视频/西安百度竞价外包
  • web3d游戏网站开发/湖州网站建设制作
  • 无锡做公司网站/网页推广链接怎么做
  • 小程序开发制作公司哪家好/东营网站seo
  • 报名网站怎么做/计算机培训机构哪个最好
  • 网站欣赏/成功的品牌推广案例分析
  • 小程序怎么做微网站链接/今天的新闻最新消息
  • php网站开发图文教程/网站视频播放代码
  • flink查看taskManager日志
  • 零基础学后端-PHP语言(第二期-PHP基础语法)(通过php内置服务器运行php文件)
  • 【愚公系列】《MIoT.VC》003-构建基本仿真工作站(组件的属性、行为、视频展示)
  • sqli-labs通关笔记-第21关 字符型Header-Cookie SQL注入(单引号括号闭合 base64编码绕过 手工注入+脚本注入两种方法)
  • 【C++基础】指针常量 | 常量指针 | int* p | const int* p | int* const p| const int* const p
  • 渗透高级-----测试复现(第三次作业)