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

Posted

技术标签:

【中文标题】SmartGwt RPC 服务(com.server.GreetingServiceImpl 类型没有可用的源代码;您是不是忘记继承所需的模块?)【英文标题】:SmartGwt RPC service (No source code is available for type com.server.GreetingServiceImpl; did you forget to inherit a required module?)SmartGwt RPC 服务(com.server.GreetingServiceImpl 类型没有可用的源代码;您是否忘记继承所需的模块?) 【发布时间】:2014-08-04 12:33:40 【问题描述】:

当我尝试访问服务器端的 GreetingServiceImpl 类并尝试在客户端使用它的函数时遇到错误。

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

这里是 GreetingServiceImpl:

公共类 GreetingServiceImpl 扩展 RemoteServiceServlet 实现 问候服务

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 结果列表 = new GreetingServiceImpl(); //这是我得到错误的地方

greetingService.greetServer(new AsyncCallback>()

        @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】:

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

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

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

GreetingServiceImpl resultList = new GreetingServiceImpl(); 

是非法的 - 删除它。

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

【讨论】:

感谢您的回复!我明白了,现在可以了。谢谢。

以上是关于SmartGwt RPC 服务(com.server.GreetingServiceImpl 类型没有可用的源代码;您是不是忘记继承所需的模块?)的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 smartgwt 中使用 gwt rpc?

SmartGWT 数据源和 CORS

缓存 SmartGWT 应用程序的静态内容

SmartGWT 库的 UnsatisfiedLinkError

如何创建一个基于Maven的SmartGWT项目

smartgwt 保存图像文件而不是在浏览器中显示