我的项目是客户端/服务器,客户端发送一个对象到服务器,服务器响应,所有这些都是通过RMI
客户项目
//接口
public interface RMI_INTERFACE extends Remote
{
public int Add(Employee e) throws RemoteException;
}
//我需要把它发给的班级
public class Employee implements Serializable
{
int ID;
String Name;
int Salary;
public Employee(int id,String name,int salary)
{
ID=id;
Name =name;
Salary=salary;
}
}
//客户端
public class RMI_CLIENT
{
public RMI_CLIENT()
{
}
public static void main(String[] args) {
try {
String name = "RMI_INTERFACE";
Registry registry = LocateRegistry.getRegistry("localhost",5000);
RMI_INTERFACE si = (RMI_INTERFACE) registry.lookup(name);
int ii;
for (Integer i=0 ;i<10;i++)
{
Employee e= new Employee(i, "employee"+i.toString() , i*1000+100);
ii=si.Add(e);
System.out.println(ii);
}
// int pi = si.Get_Salary(s);
} catch (Exception e) {
System.err.println(e.getCause());
}
}
}
//服务器项目
//接口公共接口RMI_接口扩展了远程{
public int Add(Employee e) throws RemoteException;
}
//类,我将发送和接收它公共类Employee实现可序列化的{int ID;
String Name;
int Salary;
public Employee(int id,String name,int salary)
{
ID=id;
Name =name;
Salary=salary;
}
}
//类来保存所有接收到的对象公共类Maneger{
static Employee [] employee_arr = new Employee[10];
static int i=0;
Maneger (Employee e)
{
employee_arr[i]=e;
i++;
}
public int Get_Index ()
{
return i;
}
}
//服务器公共类RMI_server扩展了UnicastRemoteObject,实现了RMI_接口{
RMI_SERVER() throws RemoteException
{
super();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
// TODO code application logic here
String name = "RMI_INTERFACE";
RMI_INTERFACE si = new RMI_SERVER();
Registry registry = LocateRegistry.createRegistry( 5000 );
registry.rebind(name, new RMI_SERVER() );
System.out.println("Server is running ...");
}
catch (Exception e) {
System.err.println("ComputeEngine exception:");
}
}
@Override
public int Add(Employee e) throws RemoteException {
Maneger m =new Maneger(e);
return m.Get_Index();
}
}
当我运行客户端时,会出现以下错误:java。马绍尔群岛共和国。UnmarshaleException:无法识别的方法哈希:远程对象不支持的方法
您已经更改了远程对象或远程接口,但尚未重新编译和重新部署所有受影响的对象。类文件。
我正在尝试使用RMI客户机-服务器通信。我编写了以下类/接口: > 接口远程接口扩展远程 类HelloStub扩展UnicastRemoteObject实现远程接口 类服务器,我绑定了远程obj 将客户端分类如下: 我不明白为什么我必须使用interface RemoteInterface进行查找?我不能使用HelloSub类吗,它是真正的远程obj? 谢谢,再见。
问题内容: RMI是否自己处理多个客户端?即 是否可以同时使用多个客户端的服务器功能? 如果没有,我该怎么做? 如果是,它如何工作?每次 调用 都会创建一个新线程吗?如果一个客户端阻止了该功能,那么下一个客户端会发生什么?等等 问题答案: 是 这个怎么运作?每次调用都会创建一个新线程吗?如果一个客户端阻止了该功能,那么下一个客户端会发生什么?等等 它为每个客户端连接创建一个线程。 如果一个客户端调
我正在做一个正在改造/现代化的项目,其中有一个小的RMI部分,不幸的是,我以前从未与RMI合作过。 我不明白的一件事是,为什么在我最初创建RMI客户端之后,它一直调用其自定义SocketFactory构造函数。似乎每5分钟我就会看到一次调用构造函数的输出,即使客户端和服务器之间没有通信。 连接完成后,我应该做什么来清理和停止任何线程以进行持久化? 我在检查UnicastRemoteObject,也
我在客户端wnat纯java RMI,因为我需要能够重新启动服务器端。
我正在尝试连接到MBean服务器。我需要编写JMX客户端应用程序。这是用于客户端应用程序的代码。但我有一个例外 检索RMIServer存根失败:javax.naming.ServiceUnavailableException[根异常为java.rmi.ConnectException:连接拒绝主机:localhost;嵌套异常为: 谁能帮我把这个修好。 我使用以下参数运行了这段代码。 dcom.s
我已经为rmi编程了一段时间,一个月后,我仍然被困在一个棘手的问题上。我想从服务器向客户端发送一个序列化对象,我想让客户端从服务器代码库下载这个对象的类。如果客户端的类路径中没有对象的类,我就无法让它工作。以下是我一直在做的: 我有一个要求一个到一个。也应该下载类ClientPlayer并动态加载它。 这是身份验证服务器,它应该创建一个对象(或),并将其返回给。(为了简洁起见,我省略了接口;无论如