没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2007-12-29 11:44:28.000|阅读 3071 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
客户机代码必须与 Java 1.4 兼容。那意味着别指望在 GWT client-side 里使用类属性(泛型)、新样式的 for 循环等等5.0的新特征。
在 GWT 客户端中只有极少的 Java 标准库受到支持。受支持的库类限于 java.util 包和 java.lang 包。但并不是所有这些包都支持。举例来说 Java.lang.reflect 包就不被支持(无法使用 Proxy, Method 等功能)。也就是说Java的反射机制在 GWT 的客户端中是不会通过编译的。(其实很容易考虑,你只要想想Javascript有没有这个功能。因为所有的 Client-side 的 Java 代码都将编译成 Javascript) 。对于序列化的客户机类也有一些限制,Java 的 Serialization 是不被支持的。该类可以通过实现接口com.google.gwt.user.client.rpc.IsSerializable 来实现。所有 JavaBean 必须继承 GWT 的序列化接口。(实现客户端与服务器端之间的 JavaBean 交互数据) 。因为 JavaScript 语言是不支持线程。所以在 GWT 编译程序中会忽略 synchronized 声明。当然,多线程的使用也别指望了。 也是不支持的。要使用 GWT.getTypeName(Object)才可以得到对象类型。GWT 允许自定义 Java-Javascript 编译器,如果你有兴趣可以研究一下。反正作到现在我觉得没那个必要。
支持自定义控件库。做过 J2EE 客户端的朋友一定有这样的经验,喜欢把所有的 taglib 放入一个单独的 project 中。从而实现一个公司内部的 taglib 库,在以后的项目中我们可以重用这些 taglib. GWT 其实也可以这样的。但是你需要定义一个控件库的*.gwt.xml。并且在你的GWT项目的*.gwt.xml 中 inherits。
不可能将所有的服务器端接口合并为一个 Factory,
Example:
java 代码
public static Object getGWTService(Class service, String ServiceURI) {
Object instance = GWT.create(service);
ServiceDefTarget target = (ServiceDefTarget) instance;
target.setServiceEntryPoint(GWT.getModuleBaseURL() + ServiceURI);
return instance;
}
这种方式是行不通的,我尝试了很久希望能够通过统一的接口来获得 RPC Service,可是当编译 Java to Javascript 时会报出 Only class literals may be used as arguments to GWT.create()的 Error message, 我的理解就是 GWT.create(..)中的参数不可以申明为一个变量的 interface class.可能在转换为 Javascript 时会出错。具体如何的内部机制无从考证。(这个 GWT 做得我都想哭了,我喜欢的设计方式都这样莫名其妙的被抹杀了)
总之,以上为 GWT 客户端的限制,虽然有些麻烦,但是由于 GWT 客户端编译时要进行Java到Javascript之间的转换的原因,避免了你去开发那更烦人Javascript。而且这样一来可是使得客户端,服务器端的层次变得更清晰。因为我们无法把大量的逻辑代码写入客户端。层次的明晰使得维护,测试变得简便。总而言之,只要在客户端开发时注意我以上提到的这些注意事项,把大量的逻辑代码放入服务器端,你会发现其实 GWT 还是不错的!
整合 IOC 和 GWT
用过 GWT 的朋友一定知道,要在 GWT 中定义一个 Remote service 就必须在*.gwt.xml 中定义这样一段 servlet 声明。可是这样的定义灵活性不够,而且无法做到将外部的 Java file 定义为 Servlet 项目中我们会希望使用 IOC 工具来实现 Remote service 的申明。并且实现把所有 Service 定义为外部 Jar(方便逻辑层的 Junit 测试)。这种方法不同于标准的 GWT 开发的,在此不是要提倡,只是提出另一种实现的方式而已。我在我的项目中就使用了IOC和GWT的整合。我要让GWT整合我公司内部开发的IOC工具,而且还要整合Spring和 Hivemind.这些流行的 IOC 工具(痛苦的过程),这里就不一一举例了。不过我要提一下 Spring 和 GWT 的整合。通过 Spring 的 DispatcherServlet 来分配 Server-side RPC servlet.这样简单就整合了这两个框架。怎么让那些老外想出来的?太有才了。有研究这方面内容的朋友可以参考的这篇文章 http://www.javaeye.com/topic/58084 。这里就不重复了。感谢的技术分享。官方网站是:http://gwt-widget.sourceforge.net/?q=node/39
部署 GWT 到 Tomcat 中
在我研究 GWT 时,看到很多网站都有人提问如何在 Tomcat 中部署 GWT 。其实使用 Ant 打包 GWT 成一个 war file 再放入 Tomcat 中就可以了。我把我 GWTTest 项目中的build.xml文件发出来,有需要的朋友可以下载看一下,xml内有详细的注释。只要把 XML 中我打”*”号的部分改为你的 GWT 项目中相应的内容就可以直接使用 Ant 打包您的 GWT project 成 war 文件了。
Echo 和 GWT
网上已经有非常详细的文章来比较这两个框架了。这里就不重复了,有兴趣的朋友可以一下。我之前也做过一个的项目,并且写了一篇的分析文章来介绍 Echo2。我这里就从一个开发人员的角度来简单的分析一下这两框架。其实从根本的底层技术上来讲,两者根本就没有可比性。GWT 是把客户端代码转换为 JAVASCRIPT,再使用 RPC 调用服务器端逻辑层 Servlet。而应该就是建立在 Servlet 上的一个框架,具体的核心实现方式我不了解。不过这两种技术都有一个共同点——太有才了。都是全的框架,而且你基本不用理那烦人的 JAVASCRIPT。视图层使用类似于 javascript 的编写方式就是最大的一个创新。从我个人的角度来说我更倾向于 GWT,因为 Echo 的性能实在有些不敢恭维(不过我相信如果未来的Echo3能够提升性能的话,Echo 会变得更出色)。
看了一些 Javaeye 中其他关于 GWT 的文章。感到很多人是因为 GWT 有太多有别于一般意义上的 java 语言的特性才对 GWT 产生了一些误解。抱歉,我这里不是在针对谁,毕竟我相信除了 Google 之外很少会有公司运用这个框架来开发项目。很多技术如果不是在实际项目中运用,仅凭自学是很难深入了解的。当然我并不是说 GWT 有多好,他也有局限性。坦率说我更喜欢 wicket,个人觉得他融入了部分的 GWT 的客户端开发创意,而且很好的弥补了 GWT 中的一些不足之处。我喜欢这些有创意的开发理念,不断涌现的新创意会让 Java 这一技术更有意思。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:javaEyE接DevExpress原厂商通知,将于近日上调旗下产品授权价格,现在下单客户可享受优惠报价!
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号