编写了一个最小的RMI例子(JDK1.6)
服务器端
package stg.server;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Service extends Remote {
String echo(String client) throws RemoteException;
}
package stg.server;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class ServiceImpl extends UnicastRemoteObject implements Service {
protected ServiceImpl() throws RemoteException {
super();
}
public String echo(String client) throws RemoteException{
return "From rmi Server: Hello! " + client;
}
}
package stg.server;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Deploy {
/**
* @param args
* @throws NamingException
* @throws RemoteException
*/
public static void main(String[] args) throws NamingException, RemoteException {
Service service = new ServiceImpl();
//registry
LocateRegistry.createRegistry(25002);
//context
Context namingCtx = new InitialContext();
//bind
namingCtx.bind("rmi://localhost:25002/service", service);
}
}
客户端
package stg.client;
import javax.naming.Context;
import javax.naming.InitialContext;
import stg.server.Service;
public class Client {
public static void main(String[] args) throws Exception {
Context namingCtx = new InitialContext();
Service service = (Service)namingCtx.lookup("rmi://192.168.8.2:25002/service");
String echo = service.echo("StoneGreen");
System.out.println(echo);
}
}
分享到:
相关推荐
这个"JAVA RMI简单例子"旨在帮助我们深入理解RMI的基本原理和实现步骤。 RMI的核心概念包括远程接口、远程对象和RMIC编译器。首先,我们需要定义一个远程接口,该接口声明了可以在远程服务器上执行的方法。这些方法...
7. **工具使用**:在开发过程中,我们可能需要使用JDK自带的`rmiregistry`来启动RMI注册表,以及`jconsole`或`jvisualvm`来监控服务的运行状态。此外,IDE如IntelliJ IDEA或Eclipse也有相应的插件来简化RMI的配置和...
### 简单RMI例子 这个例子的代码可能包括以下部分: 1. **定义远程接口**: ```java public interface MyRemoteInterface extends Remote { String doSomething(String input) throws RemoteException; } ``` 2....
这个“RMI例子”显然是一个用于教学或实践RMI技术的示例项目,通过Eclipse这样的集成开发环境(IDE)可以方便地运行和测试。 在RMI中,主要涉及以下几个核心概念: 1. **远程接口(Remote Interface)**:这是定义...
在这个例子中,当我们调用`calculator.add(5, 3)`时,实际上会通过`LoggingInvocationHandler`的`invoke()`方法,先打印开始计算的日志,然后调用实际的`RealCalculator`对象的`add()`方法,最后打印计算结束的日志...
现代的Java RMI已经不再需要显式创建stub和skeleton,它们由JDK自动处理。 5. **RMI服务器(Server)**:运行远程对象的Java应用,负责处理来自客户端的请求。 6. **RMI客户端(Client)**:通过RMI调用远程方法的...
### Java JDK6 学习要点详析 #### 一、Java 概览 - **起源与发展**:Java 最初由 Sun Microsystems 的 James Gosling 在 Green Project 中开发,初衷是为了创建一个名为 Star7 的应用程序。其命名灵感来源于 ...
“工具”标签可能意味着博客中提到了与RMI相关的工具或库,如JDK自带的rmic编译器,或者是用于调试和管理RMI服务的其他实用工具。 【压缩包子文件的文件名称】:“网络程序设计-RMI-2010.ppt” 这个PPT文件很可能...
在这个例子中,客户端运行在Windows 10上,使用JDK 1.7,而服务器端运行在Windows 7上,使用JDK 1.8。同时,服务器端还需要IIS 7.0来支持RMI服务。 2. **创建RMI组件**: - **MyRemote.java**:定义了一个继承自`...
6. **远程调用(RPC)**:Dubbo基于Java的RMI实现远程过程调用(RPC)。当服务消费者调用服务接口时,Dubbo会自动处理网络通信,使得调用如同本地方法一样便捷。 7. **负载均衡(Load Balancing)**:如果服务提供...
- 使用`chmod +x jdk-6u37-linux-i586.bin`命令给予执行权限,然后执行`./jdk-6u37-linux-i586.bin`进行安装,JDK会安装在`/opt`目录下。 1.2 配置JDK环境变量: - 打开`/etc/profile`文件,添加以下内容来设置`...
《EJB3.0实例子教程》jar包1包含了多个重要的Java企业级开发库,这些库主要用于实现EJB(Enterprise JavaBeans)3.0规范,该规范是Java平台企业版(Java EE)的一部分,用于构建分布式、事务处理、安全性和可伸缩的...
JAVA平台:JDK 1.6 Servlet:Tomcat 5.5 数据库:Access数据库(仅数据库章节需要) 2.本书所附光盘范例 第2章 示例描述:演示简单Java语言基础。 BianLiang.java 一个局部变量的例子 第3章 示例描述:本章...
public——public目录包含了Agent的一些例子,而且还应该包含我们自己编写的Agent的根目录。 lib——lib目录包含了Aglet的库文件和其他Aglet技术所需要的库文件。 (2)Aglet的安装 为了安装Aglet平台需要使用...
在上述例子中,服务端创建了一个RMI服务器,绑定了一个包含恶意`Reference`对象的`ReferenceWrapper`。恶意代码(test.class)中包含了一个简单的构造函数,执行计算器程序(`Runtime.getRuntime().exec("calc")`)...
这个例子中,我们创建了一个会话对象并打开一个列表窗口,然后在窗口中写入“Hello, World!”。 3. **编译和运行**:在命令行中切换到源代码目录,使用JDK的javac命令编译Java源文件。然后,可以通过Java的`java`...
举一个简单的例子,若想监控本地JVM的垃圾收集统计信息,并每隔5秒输出一次数据,共输出10次,可以使用如下命令: ``` jstat -gc -t *** ``` 在上述命令中,`12345`是目标JVM的本地标识符,`5`表示输出间隔为5秒,...
注:部分例子基于JDK8。 关键字 数据结构 定时器 数据库 XML 序列化与反序列化 Gson 单元测试 EasyMock WireMock Mockito 网络&I/O RMI HTTP Netty 4.0.x 线程&并发 反射&代理 AOP 脚本语言 加密解密 开源组件 ...
4. Java RPC机制:了解Java RPC机制,如rmi、hessian、thrift、webservice等,这些是理解Dubbo底层通信机制的关键。 5. Java其他内容:涉及序列化、SPI、代理、Classloader、ScriptEngine等Java高级特性。 在了解...