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를 사용하기 시작 했으므로 이해하기가 어려워요.RMI를 사용하여 객체에 액세스
이전 예제에서 우리는 우리의 객체를 저장하기 위해 팩토리를 사용했고 공장에서 호출 한 인스턴스의 서버 클래스에 Naming.rebind()
을 사용했습니다.
위 예제에서 구현 및 서버 클래스 만 있고 팩토리가 사용되지 않고 원격으로 객체에 액세스 할 수 있도록 코드를 다시 팩터링 할 수 있습니까? Naming.rebind()
을 다시 사용하거나 사용하고 싶습니다. 또 다른 구현? RMI를 사용하려면
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();
}
}
}
좋아, 난 당신이, 그것의 유사한 무슨 말을하는지 이해하는 우리 전에는 일식에서 일주일에 그것을 어지럽히고 난 괜찮아, 고마워 크리스천, 아플, 최대한 빨리 대답을 받아 들인다. – user2757842
EJB 기술을 찾아 보거나 가능한 경우 WebService (SOAP/Rest)를 사용한다. RMI는 여전히 가능하지만 대부분의 경우 가능한 경우 이러한보다 정교한 기술을 사용하는 것이 좋습니다. – Diversity
RMI 레지스트리는 RMI 인터페이스를 제공합니다. JNDI는 RMI 인터페이스를 제공합니다. 레지스트리는 JNDI 인터페이스를 제공하지 않습니다. UnicastRemoteObject를 확장하거나 객체를 레지스트리에 바인드하는 것은 필수적이지 않습니다. 각각의 경우에 대안이 있습니다. – EJP