我试图为GWT
的主页创建后端。我在Eclipse
中创建了一个Google Web Application
,但没有示例代码,现在我想添加该服务,但开发人员Google指南不能帮助我。我不确定,在哪里添加界面,以及它的工作原理。创建GWT RPC服务
如果我正确理解Google文档,我必须添加module
和entry point class
,这是否正确?如果你能给我一些提示并帮助如何创建一个rpc服务,那将是非常好的。
我试图为GWT
的主页创建后端。我在Eclipse
中创建了一个Google Web Application
,但没有示例代码,现在我想添加该服务,但开发人员Google指南不能帮助我。我不确定,在哪里添加界面,以及它的工作原理。创建GWT RPC服务
如果我正确理解Google文档,我必须添加module
和entry point class
,这是否正确?如果你能给我一些提示并帮助如何创建一个rpc服务,那将是非常好的。
如果创建在Eclipse的一个新的GWT项目“新建项目”向导“生成项目的示例代码”检验,它将包括一个样品的方法,然后你就可以根据适应或复制一个全功能的RPC服务满足您的需求。
内存不足,不要在我面前发生日食。 首先用生成的测试代码创建一个测试项目,之后可以将其删除。 是的,你将不得不添加一个模块。 在客户端创建异步调用的两个接口,并在服务器端继承它。 希望我明白你的问题的权利。
我不确定最能帮助您的是什么。 Google开发人员指南对我来说足够了(至少当我开始在1.6版本上使用它时)为我的GWT应用程序创建RPC服务。
通用APP
模块:是.gwt.xml
文件。是的,你需要它。 GWT编译器会自动找到它并尝试编译所有的GWT代码(<source>
元素将告诉哪个子包包含将被转换为JS的Java代码)。它会告诉哪个类实现EntryPoint接口。 onModuleLoad将是JavaScript在客户端页面中运行时执行的代码。
RPC
那么,你应该首先尝试UI的东西,只有到那时,当你有足够的信心,尽量服务器的事情。无论如何,该方案是:
interface MyService extends RemoteService {
List<String> doSomething(String sample, int other);
}
@RemoteServiceRelativePath("../path/to/servlet") // see later
intercace MyServiceAsync {
void doSomething(String sample, int other, AsyncCallback<List<String>> callback);
}
这些是接口。后来是异步的。这就是你将从客户端使用的。总是调用并传递一个AsyncCallback的实现,该实现将会收到(稍后,您不知道何时)结果。
第一个接口是同步接口。这是你需要在服务器上实现的。您必须从RemoteServiceServlet类继承(这是servlet的一个实现,它已经完成了所有值处理)并实现了您的接口。其余(几乎)GWT代码。
public class ServiceImpl extends RemoteServiceServlet implements MyService
{
// implement the method normally
}
从客户端,您将需要创建服务代理:
private static MyServiceAsync MY_SERVICE = GWT.create(MyService.class);
是。我知道GWT知道MyserviceAsync和MyService如何协作,这很奇怪。别担心。它的工作原理:)
只要使用这样的服务:
MY_SERVICE.doSomething("value", 111, new AsyncCallback<List<String>>() {
// note that this code executes some time in the future when response from server is back
public void onSuccess(List<String> result) {
Window.alert("Server answered with " + result.size() + " elements!");
}
public void onFailure(Throwable t) {
Window.alert("Server failed: " + t.getMessage());
}
}
路径服务器
你必须配置你的应用程序,使该servlet实现监听到URL指示@ RemoteServiceRelativePath。这就是客户端知道在哪里发出请求的方式,服务器知道哪个servlet出现该请求。我建议使用:
../my-service.gwt
为相对路径(GWT模块被刊登在<ROOT>/module_name
和
配置Web应用程序来使用/my-service.gwt
servlet的,但它完全取决于您的喜好:)
无论如何,我认为谷歌教程是最好的。所以请复制&粘贴。尝试&修改,直到你了解整个事情。
基于'StockWatcher'的教程是一个很好的开始! https://developers.google.com/web-toolkit/doc/latest/tutorial/gettingstarted –