服务器端业务接口
public interface Biz extends Remote {
public String aloha() throws RemoteException;
}
服务器端业务实现
public class BizImpl extends UnicastRemoteObject implements Biz {
private static final long serialVersionUID = -8559392326593037120L;
public BizImpl() throws RemoteException {
super();
}
@Override
public String aloha() throws RemoteException {
return "Aloha Baby.";
}
}
服务器注册远程实现名称
public class Server {
public Server() {
try {
Biz bis = new BizImpl();
// style-1
Registry registry = LocateRegistry.createRegistry(RMIParameter.PORT);
registry.rebind(RMIParameter.NAME, bis); // replace existing binding name
// style-2
//java.rmi.Naming.rebind(RMIParameter.NAME, bis); // replace existing binding name
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
new Server();
}
}
style-2 需要指定一个Policy文件或者运行rmiregistry
java -Djava.security.policy=folder_x/rmi/policy_file creative.fire.rmi.Server
Policy文件的内容为:
grant{
permission java.net.SocketPermission "localhost:9527", "connect, resolve";
};
运行rmiregistry是修改 JDK 目录下的jre/lib/security/java.policy
rmiregistry(linux)
start rmiregistry(windows)
允许任何人(targets)作任何事情(actions):
grant{
permission java.security.AllPermission "","";
};
OR
grant {
permission java.security.AllPermission;
};
客户端打桩调用
public class Client {
public static void main(String args[]) {
try {
Biz bis = (Biz) Naming.lookup(RMIPREFIX + PORT + NAME);
System.out.println(bis.aloha());
} catch (Exception e) {
e.printStackTrace();
}
}
}
相关推荐
### Java远程方法调用(RMI):深入解析与实践 #### 一、RMI概念与原理 Java远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种分布式计算模型,允许一个Java虚拟机(JVM)上的对象通过网络...
在提供的压缩包文件中,"三种方式(原始方式_spring_jndi)实现java远程调用(rmi)"包含了相关的示例代码,帮助开发者理解并实践这三种RMI实现方法。在MyEclipse或其他Java开发环境中导入这些代码,可以进行调试和...
首先,我们需要定义一个实现了`java.rmi.Remote`接口的类,比如`MyRemoteInterface.java`,并在这个接口中声明所有需要远程调用的方法。这些方法必须抛出`java.rmi.RemoteException`,因为网络通信可能会出现异常。...
远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种机制,它允许一个程序在不同的Java虚拟机(JVM)之间调用另一个程序的方法。这种技术使得分布式计算成为可能,使得开发者可以构建分布式应用...
Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同的Java虚拟机之间进行方法调用,仿佛这些方法是在本地对象上执行一样。这个技术极大地简化了构建分布式应用的...
接下来,`getMemberAccountCount`方法实现了远程调用逻辑,通过`this.ref.invoke`方法调用了远程方法,并处理了可能抛出的异常。 #### 2. 客户端代码分析 客户端通过`Naming.lookup`方法获取远程服务的引用,然后...
Java远程方法调用(Remote Method Invocation,简称RMI)是Java平台中用于分布式计算的核心技术。它允许一个Java对象在一台机器上调用另一台机器上的对象的方法,仿佛这些方法是在本地对象上调用一样。本篇文章将对...
2. **类型安全**:由于使用Java语言,RMI提供了类型安全的远程调用。 3. **高性能**:RMI可以利用Java的自动内存管理和垃圾收集机制,减少资源消耗。 ### RMI的劣势 1. **平台依赖**:虽然Java有“一次编写,到处...
Java远程方法调用(RMI)是Java平台标准版的一部分,它使得开发者能够在Java虚拟机(JVM)之间创建分布式应用程序。Java RMI允许对象调用远程JVM上运行的Java对象的方法,这些远程JVM可以位于不同主机上。RMI使用...
1. **创建远程接口**:定义一个继承自Remote的接口,声明需要远程调用的方法。 2. **实现远程接口**:编写一个类实现这个接口,提供具体的方法实现。 3. **注册远程对象**:在服务器端创建远程对象实例,然后将其...
在Java编程领域,分布式系统和远程方法调用(Remote Method Invocation, RMI)是关键的高级概念,它们允许不同计算机间的程序协同工作,提高系统的可扩展性和灵活性。本篇文章将探讨如何使用Java来实现简单的分布式...
- 创建一个实现了XML-RPC服务器端点接口的类,该接口定义了可以被远程调用的方法。 - 使用XML-RPC服务器启动器(如`org.apache.xmlrpc.server.XmlRpcServer`),将上述接口实例注册到服务器,使得客户端可以通过...
Java远程方法调用(RMI,Remote Method Invocation)是Java编程中的一个重要概念,它使得一个Java程序能够调用网络中另一台计算机上的Java方法,如同调用本地方法一样。RMI是Java开发分布式应用程序的关键技术,它极...
- **创建服务接口**:首先,你需要定义一个Java接口,这个接口将包含所有可供远程调用的方法。 - **实现服务接口**:创建一个类实现该接口,并提供具体的方法实现。 - **注册服务**:使用Hessian服务器端库(如...
"C语言调用java语言方法"是一个典型的跨语言通信场景,主要应用于Android平台上的JNI(Java Native Interface)开发。JNI允许Java代码和其他语言(如C/C++)进行无缝交互,提升性能或者利用已有的库资源。 首先,...
在Windows环境下,同样需要JRE,运行客户端程序来执行远程调用。 注意,RMI的安全性、异常处理和网络通信细节也是开发者需要考虑的问题。例如,需要处理可能的`RemoteException`,以及配置JVM的安全策略文件以允许...
然而,RMI也有一些缺点,如安全性问题(如果不妥善处理,远程调用可能导致安全漏洞),以及网络连接故障时的恢复和错误处理复杂性。 在你提到的`RemoteControl1.7`文件中,很可能包含了一个具体的Java远程控制程序...
Spring Cloud Feign 实现远程调用服务传输文件的方法 在微服务架构中,服务之间的调用和文件传输是非常常见的场景。Spring Cloud Feign 是一个基于 Java 的声明式 RESTful 客户端,提供了一种简单、可靠的方式来...