这段时间碰巧做一个RMI的应用,刚上手还是用旧的方法完成,不曾想过JDK在RMI有了较大的简化。所以在此通过一个小的demo,把这部分知识点与大家分享。非常感谢梦梦同学让我对这部分内容得以重新巩固。
JDK5下的RMI示例编写与操作步骤如下。
1、创建接口
public interface SecureSecond extends Remote
{
long getMilliSeconds() throws RemoteException;
}
2、创建实现类
public class SecureSecondImpl extends UnicastRemoteObject implements
SecureSecond {
/**
*
*/
private static final long serialVersionUID = 1L;
public SecureSecondImpl() throws RemoteException {
};
public long getMilliSeconds() throws RemoteException {
// The method getTime returns the time in msecs
System.out.println("method called");
long time = new Date().getTime();
System.out.println("job done");
return time;
};
}
3、创建服务端
public class SecureServer {
public static void main(String[] args) {
try {
System.out.println("Loading in security manager");
RMISecurityManager sManager = new RMISecurityManager();
System.setSecurityManager(sManager);
SecureSecondImpl remote = new SecureSecondImpl();
Naming.rebind ("Dater", remote);
System.out.println("Object bound to name");
}
catch(Exception e) {
System.out.println("Error occurred at server "+e.getMessage());
}
}
}
4、创建客户端
public class SecureTimeClient {
public static void main(String[] args) {
try {
System.out.println("Loading in security manager");
RMISecurityManager sManager = new RMISecurityManager();
System.setSecurityManager(sManager);
SecureSecond sgen = (SecureSecond) Naming.lookup("rmi://localhost/Dater");
System.out.println("Milliseconds are "+sgen.getMilliSeconds());
}
catch(Exception e) {
System.out.println("Problem encountered accessing remote object "+e);
}
}
}
5、编译以上文件
6、注册RMI
在“运行”中输入cmd,在你的class目录下执行 start rmiregistry
7、修改权限,
打开你安装java的目录,找到
Java\jdk1.6.0_06\jre\lib\security\java.policy文件,用记事本打开
在grant { }所辖的括号中加一句:
permission java.security.AllPermission "", "";
8、启动服务端
在“运行”中输入cmd,在你的class目录下执行
java -Djava.security.policy=java.policy SecureServer
9、在“运行”中输入cmd,在你的class目录下执行
java -Djava.security.policy=java.policy SecureTimeClient
分享到:
相关推荐
在RMI系统中,Socket通信作为底层传输机制,确保数据在网络中的安全传输。Socket编程为RMI提供了网络连接的基础,使得客户端和服务端能够进行双向通信。同时,由于RMI是基于Java的,因此它还利用了Java的序列化机制...
分布式程序设计是现代软件开发中的一个重要领域,它允许在多台计算机之间共享资源和执行任务,从而...通过深入学习和实践,你可以更好地掌握RMI在分布式系统中的运用,为构建高效、可扩展的Java应用程序打下坚实基础。
【设计模式概述】 设计模式是软件工程中经过实践...学习JDK中的设计模式可以让我们更好地理解Java库的设计思想,提升编程技巧,同时也能帮助我们更有效地运用这些模式到自己的项目中,编写出高质量、易于维护的代码。
在JDK 1.4中,可能会有像`jconsole`这样的系统监视工具,用于监控JVM的性能和内存使用情况。 通过深入研究JDK 1.4的源码,初学者可以了解Java语言的基础结构、设计模式以及类库的实现原理,这将为后续的高级编程和...
在Java开发中,掌握JDK命令是至关重要的,因为它们提供了许多实用的功能,包括编译、运行、调试和管理Java应用程序。本文将深入讲解几个关键的JDK命令,包括`rmic`、`rmid`、`rmiregistry`和`serialver`。 **rmic**...
在Java开发领域中,深入理解并掌握JDK(Java Development Kit)提供的各种工具和命令是至关重要的。本文将详细介绍几个常用的JDK命令及其使用方法,包括`rmic`、`rmid`、`rmiregistry`、`serialver`以及`jarsigner`...
【wlfullclient.jar 客户端开发包 rmi\jms\ejb3 网络安全人必备】 本文将详细介绍`wlfullclient.jar`客户端开发包,它...理解和熟练运用这些技术,无论是开发者还是网络安全专家,都能在WebLogic环境中发挥重要作用。
Java是一种由Sun Microsystems公司开发的面向对象的编程语言,由James Gosling等人于1995年发布,最初是为了编写Star7应用程序。...无论是初学者还是经验丰富的开发者,都能在Java的广阔世界中找到适合自己发展的方向。
代理模式是软件设计模式中的一个重要组成部分,它在Java编程中扮演着举足轻重的角色。代理模式的核心思想是为一个对象提供一个替身,这个替身即代理对象,代理对象可以控制对原对象的访问。在实际应用中,代理模式常...
Java API包含在Java Development Kit (JDK) 中,当安装JDK后,即可使用这些API。 Java API按照功能和用途划分为多个包,每个包下又可能有子包,例如: 1. `java.accessibility`:提供接口组件和辅助技术。 2. `...
`jstack` 目前仅在Solaris和Linux的JDK版本中可用。 #### 2. jconsole —— Java Control Console `jconsole` 是基于Java Management Extensions (JMX) 的实时图形化监控工具,它能够展示JVM的实时性能数据和资源...
Java 反射是 Java 语言中一种强大的工具,它允许程序在运行时检查并操作类、接口、对象等的内部细节。在Java中,反射机制主要用于以下几个方面: ...在实际开发中,合理运用这些特性可以解决许多复杂的问题。
- **rmi协议**:JDK标准的RMI实现,需要实现Serializable接口,采用阻塞式短连接,适合常规的远程服务调用,但传输效率相对较低,且存在安全漏洞。 - **webservice协议**:基于WebService,提供与原生Web Service的...
《Dubbo面试深度解析》 Dubbo作为一款高性能、轻量级的Java RPC框架,其在企业级应用中有着广泛的应用。面试中,对Dubbo的理解和掌握...在实际项目中,还需要根据业务需求灵活运用,以实现高效、稳定的微服务架构。
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了在Java面试中脱颖而出,了解和掌握基础的Java知识至关重要。...深入理解并能熟练运用这些知识,将有助于在Java面试中取得成功。
Java的发展历程中,经历了多次版本迭代,从JDK1.0到JDK1.5(J2SE5.0),再到后来的Java SE、ME和EE的划分。Java的特点主要包括: 1. **面向对象**:Java是一种纯面向对象的语言,强调对象的封装、继承和多态。它...
5. -Dcom.sun.management.jmxremote.authenticate=false,关闭JMX连接认证,增加配置的简易性。 6. -XX:+UnlockCommercialFeatures,启用JMC的商业特性。 7. -XX:+FlightRecorder,开启Java飞行记录器,用于记录应用...
在Eclipse中调试Sqoop,你需要先安装Hadoop和Sqoop的相关环境,包括Java开发环境JDK,Eclipse IDE,Hadoop客户端,以及Sqoop的源代码。确保所有依赖库已正确配置,包括Apache Hadoop的lib目录下的所有jar文件,以及...