ITPub博客

首页 > Linux操作系统 > Linux操作系统 > gwt总结

gwt总结

原创 Linux操作系统 作者:grazier 时间:2012-07-10 18:20:59 0 删除 编辑
1、常见错误:
1.1、$wnd.isc  no define 或 为空:
解决:是eclipse的环境没有配置好。检查jar文件是否从其它工程copy,改成eclipse自动生成的gwt  jar包;smartgwt的jar一定是从smart网站自已下载的。

2、在gwt google 编译环境下,获取数据库连接进行数据库操作会报错;也就是说google编译环境下,只能进行客户端的编译。

GWT的最重要的功能应属他的RPC调用机制,是Ajax技术的扩展,它包括三个部分:远程接口,服务器实现,异步接口文件。

1.远程接口需要继承RemoteService接口,然后在这个接口上添加Java注记 (@RemoteServiceRelativePath(“url”)),这个注记的参数指明实现这个接口的Servlet的URL路径,在浏览器 端,GWT使用延迟绑定创建这个接口的实现类。

2.GWT-RPC是基于Servlet实现的,在服务器端我们要实现RPC的接口类,并派生于 com.google.gwt.user.server.rpc.RemoteServiceServlet类,这个类由GWT提供,派生于 HttpServlet类。当浏览器端请求这个Servlet时,它会反射自身,查找实现了客户请求的函数,将浏览器端的请求反序列化并调用找到的函数。 函数执行完成后,它将返回值序列化后传递给浏览器端。服务端的实现就是这样的Servlet具体实现远程接口的方法。

3.我们需要通过异步的方式调用浏览器端的远程接口,于是就需要定义一个远程接口的异步版本,远程接口和异步版本放在同一个包中。并且接口名必须为 [接口名]Async。RPC接口中每一个函数都需要定义一个相对应的异步函数,异步函数的返回值为null,同时在增加一个额外的 AsyncCallback参数,AsyncCallback是泛型类,泛型参数为RPC函数的返回值类型。

举个例子具体说明三个部分是如何整合的

EmployeeService(远程接口)

@RemoteServiceRelativePath("employeeService")

public interface EmployeeService extends RemoteService{

public Boolean checkSex(String sex);

}

/****************

EmployeeServiceAsync(异步接口文件)

public interface EmployeeServiceAnsyc {

public void checkSex(String sex,AsyncCallBack callback);

}

/****************

EmployeeServiceImpl(服务器实现)

public class EmployeeServiceImpl extends RemoteServiceServlet implements EmployeeService{

public Boolean checkSex(String sex){

if("man".equals(sex)){return true;}

else{return false;}

}

}

在web.xml中对Servlet 添加

emploeeService

com.gwt.server.service.EmployeeServiceImpl

.........

在浏览器端调用的时候,代码如下:

//获取EmployeeServiceAsync对象

EmployeeServiceAsync employeeService = (EmployeeServiceAsync)GWT.create(EmployeeService.class);

//设定ServiceEntryPoint的URL

ServiceDefTarget target = (ServiceDefTarget)employeeService;

target.setServiceEntryPoint(GWT.getModuleBaseURL()+"employeeService.gwt");

employeeService.checkSex("man",new AsyncCallback(){

@Override

public void onFailure(Throwable caught){

//失败

Window.alert("Failed to get response from server :/n"+caught.getMessage());

}

@Override

public void onSuccess(Boolean result){

if(result){

Window.alert("check Sex success ;it is man ! ");

}else{Window.alert("check Sex success ;it is woman ! ");}

}

});

 

其它内容:

GWT基本控件 http://examples.roughian.com/index.htm#Home

 

GWT官方文档 http://code.google.com/intl/zh-CN/webtoolkit/

 

其它GWT开发相关文章

http://www.**.com/topic/128194


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/118838/viewspace-735108/,如需转载,请注明出处,否则将追究法律责任。

下一篇: sql的递归查询
请登录后发表评论 登录
全部评论

注册时间:2008-10-20

  • 博文量
    53
  • 访问量
    218139