有没有办法从Server Side包中的其他Java类调用GreetingServiceImpl的方法。我想从GreetingServiceImpl中的方法中提取一段数据,但我无法这样做,因为它需要“静态”方法,而GWT RPC方法不是静态的。我试过了
GreetingServiceImpl obj=new GreetingServiceImpl();
String mSelect=obj.getModel(Manufacturer);
但代码无效。它甚至没有执行
我也尝试过谷歌搜索,但没有找到任何可以轻松完成任务的相关内容。 有一个简单的方法吗?
答案 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);