初试GWT(Google Web Toolkit),废了老大尽了-, - 今天终于搞定了^_^ 傻瓜式流程如下,希望感兴趣的朋友共同讨论
一. GWT 简介
基于Java的一款Ajax应用程序开发工具. 简单来说,将我们熟悉的java code编译成javascript. 目的是构建运行在浏览器中的桌面般的应用程序.
我更喜欢用它来做些小的表现层组件.
二. 准备工作 -- > Build
1. 需下载的东东: JDK, Apache Tomcat, Ant, GWT(Google Web Toolkit), 很好找,我就不把链接放上了,看着乱...
2. 工具: Eclipse
3. 建立开发环境:http://code.google.com/webtoolkit/gettingstarted.html
( 用projectCreator和applicationCreator建目录,用loginStart-compile生成js与html,用loginStart-shell做host test, 前两个文件均在下载的GWT目录下可找到,后两个文件通过前两个生成而得, XX-shell & XX-compile)
4. 一小点废话
我们的程序一般都要和服务器打交道,简单的Login也不例外。尽管最后生成了一个不起眼的js文件和一些七七八八的东西。GWT为我们提供了客户端向服务器发送远程过程调用(RPC)的完美支持。
通过GWT实现RPC需要5个步骤:
创建一个远程服务接口-->创建一个对应的异步接口-->构建一个实现远程服务接口的远程servlet(真绕口)-->在应用程序的配置文件中声明该服务-->实例化上述接口一个实例,并通过它生成RPC调用。
5. 开始代码
直接用图+代码的方式
要把GWT相关的几个jar包放进项目里。LoginService(远程服务接口), LoginServiceAsyn(对应的异步接口), LoginDeskTopImpl(远程servlet)
NOTE: 对应异步接口名字: 接口+Asyn,格式固定,放在同一目录下
DeskTopApp.gwt.xml
LoginService
LoginServiceAsyn
LoginDeskTopImpl
LoginDeskTop
6. 生成js与html与其他...
用XX-complie文件
7 build
build.xml
所需jar包: gwt-servlet.jar
要将生成的www/com.DeskTopApp/下所有文件考到.war中
(因为生成了包括js与html等一大坨子的数据,因此此build将文件放在${warDir}/${webTo}下)
NOTE:我们把js文件放在了${warDir}/${webTo}下, 而在LoginDeskTop中,
target.setServiceEntryPoint(GWT.getModuleBaseURL() + "loginService");
因此,我们写web.xml时要注意
<url-pattern>/Component/GWT/DeskTopApp/loginService</url-pattern>
web.xml (此文件需要自己写,当然要在build前完成)
将生成的war文件放在Tomcat下,启动Tomcat
键入http://localhost:8080/GWTTest/Component/GWT/DeskTopApp/DeskTopApp.html
或者在根目录下建个index.html, 搞个iframe src这个文件,输入http://localhost:8080/GWTTest/
验证结果吧!
三. 常见错误
XMLHTTP Status 404, post失败,可能是没找到servlet 检查web.xml是否正确,com.server.LoginDeskTopImpl是否在WEB-INF class下
XMLHTTP Status 500, post找到了,出现internal错误,有可能需要的jar文件没有找到等,看看WEB-INF下/lib里是否有gwt-servlet.jar或者其他要引入的包
其他...看看log之类的再分析吧...