首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用RMI访问对象

使用RMI访问对象
EN

Stack Overflow用户
提问于 2013-12-15 21:06:53
回答 1查看 152关注 0票数 0
代码语言:javascript
运行
复制
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(),还是有其他实现?

这是我以前用过的:

代码语言:javascript
运行
复制
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();
            }
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-15 21:15:16

为了使用RMI,您需要一个实现java.rmi.Remote接口的接口,您的FoodItemServer必须从java.rmi.server.UnicastRemoteObject扩展并实现这个接口。

此外,您还需要在RMIRegistry注册这个类,这个类必须另外启动。这是一个特殊的服务器,它提供了一个JNDI接口。

客户端可以请求RMIRegistry来使用java.naming机制接收RMI远程接口类型的实例,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20599812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档