0

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

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

但代码不起作用。它甚至没有执行

我也尝试过谷歌搜索,但没有找到任何可以轻松完成此操作的相关内容。有没有简单的方法来做到这一点?

4

2 回答 2

1

你做对了。调试并确保您的方法没有执行任何需要ServletContainer. 例如,如果您的 GreetingServiceImpl 有init()destroy()实现,它们将不会被调用,因为您将它用作 Java 类而不是HttpServlet. 还要确保您的方法不需要 a HttpSession,因为您不会有。

我还建议您使用实例变量而不是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);
于 2013-09-16T22:07:02.510 回答
1

远程服务实现中的方法(本例中为 GreetingServiceImpl)旨在由客户端代码通过异步接口调用。如果您需要从服务器端代码调用它们,那么您可能做错了什么或没有按照预期使用它。

但是,如果不查看更多代码,我无法告诉您您做错了什么。如果您编辑您的问题以显示您的方法实现的代码,我们可能会建议一种更好的方法来实现您的目标。

于 2013-09-16T21:07:10.103 回答