SmartGwt RPC服务(没有源代码可用于com.server.GreetingServiceImpl类型;您是否忘记继承所需的模块?)

时间:2014-08-04 12:33:40

标签: java rpc smartgwt

当我尝试访问服务器端的GreetingServiceImpl类并尝试在客户端使用它的功能时,我收到了错误。

错误:没有源代码可用于com.demo1.server.GreetingServiceImpl类型;你忘了继承一个必需的模块吗?

这是GreetingServiceImpl:

公共类GreetingServiceImpl扩展了RemoteServiceServlet实现         GreetingService {

public LinkedList<String> greetServer() throws IllegalArgumentException {
    // Verify that the input is valid.

    LinkedList<String> list = new LinkedList<String>();

    try {
        File file = getLog();
        Parse parse = new Parse(file);
        list = parse.callControlRequest();

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return list;
}

public File getLog() throws IOException {
   //doing something
}

}

我试图在客户端使用它,如:

GreetingServiceImpl resultList = new GreetingServiceImpl(); //这是我收到错误的地方

greetingService.greetServer(new AsyncCallback&gt;(){

        @Override
        public void onFailure(Throwable caught) {
            // TODO Auto-generated method stub
            dialogBox
            .setText("Remote Procedure Call - Failure");
    dialogBox.center();

        }

        @Override
        public void onSuccess(LinkedList<String> result) {

            result=resultList.greetServer(); // this is where I am trying to get the output of it
        }
    });;
}

1 个答案:

答案 0 :(得分:1)

您不能在客户端使用服务器端的类。要使用GreetingService,您应该实例化它的异步部分:

GreetingServiceAsync greetingService = GWT.create(GreetingService.class);

然后你可以使用greetingService变量调用GreetingServiceImpl中的方法 - 你不能直接在客户端使用或引用GreetingServiceImpl,所以行

GreetingServiceImpl resultList = new GreetingServiceImpl(); 

是非法的 - 将其删除。

此外,您可以生成默认的gwt应用程序,看看它是如何完成的,或者查看gwt库提供的DynaTable样本:gwt-dir / samples / DynaTable。