当gwt发布的时候我就初略的看了gwt的文档。当时没有在注意这个东西。当自己经过ajax, javascript洗礼后,蓦然想试试gwt这个东西。原卷了javascript的开发效率(虽然FF 有firebug, IE下面有VS)。我也不确定gwt是否会提高开发效率(我也没有用gwt做过项目),但是就评google的技术,而且可以用java去写页面代码。 我觉得有必要试试。
发了些时间看了gwt的 Getting started guide 和 Develop guide 这个写得还是非常简单明了的。gwt会把你写的这些client java代码编译成html和js。应该大部分都是js吧。
在实践Reomte produce call 遇到的一个问题, 我把 MyService.java MyServiceImpl.java, MyServiceAsync.java都放在了com.dengyin.client包中,然后程序运行的时候老是会出现"com.google.gwt.user.server包找不到的错误", 但是程序运行是正常的。但是classpath中确实有MyServiceImpl这个类,后来在 gwt develop forum 找到答案。 问题原因应该是gwt在真正运行前会先独立的编译com.dengyin.client包下的所有的类。但在编译的时候是不会把com.google.gwt.user.server中的类include进来。但是MyServiceImpl继承了RemoteServiceServlet,RemoteServiceServlet是在com.google.gwt.user.server包里面的,所以会发生这个问题。其实想想也就知道gwt为什么强制用户要有client这个包的原因了, 所有在client包里面的类都不应该跟Server端的有关系,在这个包里面的所有类应该仅仅是跟界面有关系。解决办法是把MyServiceImpl移到com.dengyin.server包里面。
发了些时间看了gwt的 Getting started guide 和 Develop guide 这个写得还是非常简单明了的。gwt会把你写的这些client java代码编译成html和js。应该大部分都是js吧。
在实践Reomte produce call 遇到的一个问题, 我把 MyService.java MyServiceImpl.java, MyServiceAsync.java都放在了com.dengyin.client包中,然后程序运行的时候老是会出现"com.google.gwt.user.server包找不到的错误", 但是程序运行是正常的。但是classpath中确实有MyServiceImpl这个类,后来在 gwt develop forum 找到答案。 问题原因应该是gwt在真正运行前会先独立的编译com.dengyin.client包下的所有的类。但在编译的时候是不会把com.google.gwt.user.server中的类include进来。但是MyServiceImpl继承了RemoteServiceServlet,RemoteServiceServlet是在com.google.gwt.user.server包里面的,所以会发生这个问题。其实想想也就知道gwt为什么强制用户要有client这个包的原因了, 所有在client包里面的类都不应该跟Server端的有关系,在这个包里面的所有类应该仅仅是跟界面有关系。解决办法是把MyServiceImpl移到com.dengyin.server包里面。