Class FoodItem{
private String name;
private int numCalories;
public FoodItem(String s, int cals)
{
name = s;
numCalories = cals
}
public String getName()
{
return name;
}
public int getNumOfCalories()
{
return numCalories;
}
}
public class FoodItemServer
{
public static void main(String [] args)
{
FoodItem f1 = new FoodItem("Wispa", 254);
FoodItem f2 = new FoodItem("Apple", 45);
System.out.println( "Food Name: " + f1.getName + “has “ +
f1.getCalories +“calories”);
}
}
我们最近开始使用RMI,我很难理解它。
在前面的例子中,(我将它放在下面)我们使用工厂来存储我们的对象,并在我们从工厂调用的实例的服务器类中使用Naming.rebind()
。
在上面的示例中,我只有实现和服务器类,没有使用工厂,我怎么能重新分解代码以便我可以远程访问对象,我会使用Naming.rebind()
再次或是否有其他实施?
这是我以前用过的:
import java.rmi.Naming;
/*
* Creates the server for using RMI
*/
public class PlayerServer
{
public static void main(String args[])
{
System.out.println("Player Server Starting");
try{
PlayerFactory aFactory = PlayerFactory.getInstance();
Naming.rebind("factory", aFactory);
}
catch(Exception e){
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
为了使用RMI,您需要一个实现java.rmi.Remote接口的接口 并且您的FoodItemServer必须从java.rmi.server.UnicastRemoteObject扩展并实现此接口。
此外,您需要在RMIRegistry注册此课程 必须另外开始。这是一个提供JNDI的特殊服务器 接口
客户端可以要求RMIRegistry使用java.naming机制接收RMI远程接口类型的实例,