从GWT中的其他类调用GreetingServiceImpl方法

时间:2013-09-16 20:37:23

标签: java gwt rpc method-call

有没有办法从Server Side包中的其他Java类调用GreetingServiceImpl的方法。我想从GreetingServiceImpl中的方法中提取一段数据,但我无法这样做,因为它需要“静态”方法,而GWT RPC方法不是静态的。我试过了

GreetingServiceImpl obj=new GreetingServiceImpl();
String mSelect=obj.getModel(Manufacturer);

但代码无效。它甚至没有执行

我也尝试过谷歌搜索,但没有找到任何可以轻松完成任务的相关内容。 有一个简单的方法吗?

2 个答案:

答案 0 :(得分:1)

远程服务实现中的方法(本例中为GreetingServiceImpl)旨在通过异步接口由客户端代码调用。如果你需要从服务器端代码调用它们,你可能会做错事或不使用它,因为它是打算使用它。

但是,如果没有看到更多代码,我无法告诉你你的错误。如果您编辑问题以显示方法实施的代码,我们可能会建议更好的方法来实现您的目标。

答案 1 :(得分:1)

你正确地做到了。调试并确保您的方法没有执行任何需要ServletContainer的操作。例如,如果您的GreetingServiceImpl具有init()destroy()实现,则不会调用它们,因为您将其用作Java类而不是HttpServlet。另外,请确保您的方法不需要HttpSession,因为您没有。{/ p>

我还建议你使用实例变量而不是一直调用new GreetingServiceImpl();

private static GreetingServiceImpl instance = null;
public static GreetingServiceImpl getInstance() {
    if (instance == null) {
        instance = new GreetingServiceImpl();
    }
    return instance;
}

从那时起,从服务器端开始,您将致电:

String mSelect=GreetingServiceImpl.getInstance().getModel(Manufacturer);