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 类型没有可用的源代码;您是不是忘记继承所需的模块?)的主要内容,如果未能解决你的问题,请参考以下文章