扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年8月21日
关键字: ZK BEA Workshop
本文主要介绍如何使用BEA Workshop配置ZK(http://www.zkoss.org)开发环境。文中以现如今使用比较广泛的开源Web服务器Tomcat与商业应用服务器BEA WebLogic Server为实验服务器,结合BEA Workshop为开发工具介绍了ZK开发环境的配置过程以及相关的最佳实践,帮助大家少走弯路,更好的使用ZK。
介质准备
BEA WebLogic Server 10:BEA WebLogic Server 10中自带了BEA Workshop for WebLogic Platform开发工具,因此,无需单独下载BEA Workshop。
下载地址:http://commerce.bea.com/products/weblogicplatform/weblogic_prod_fam.jsp
ZK 2.3:此版本是2007年3月20日发布的ZK最新版。
下载地址:http://www.zkoss.org/release/rn-2.3.0.dsp
Apache Tomcat 5.5.23
下载地址:http://tomcat.apache.org/download-55.cgi
BEA Workshop配置服务器
由于ZK是一个基于AJAX技术的展现层开发框架,因此,理论上讲ZK可以安装部署在任何符合J2EE规范的Servlet 容器上。这里我分别选择了在开源领域与商业领域最为流行的两个J2EE 服务器:Tomcat(严格上讲应该被称作Web服务器)与WebLogic Server作为实验对象。
由于BEA Workshop使用了Eclipse的WTP子项目,因此,服务器配置过程都是遵循WTP的方式,这里不再详述。
详情参阅:http://www.eclipse.org/webtools/main.php
ZK与Tomcat
建立ZK应用最简便的方式是以ZK Demo为起点,这样省去了很多配置工作。下面我们看看如何在BEA Workshop中配置ZK应用。
第一步:导入WAR
第二步:选择ZK Demo WAR包
第三步:拷贝ZK相关Jars文件
将%ZK_HOME%\dist\lib目录下的所有jar文件(如果需要更多ZK附加功能,加入ext与zkforge目录下的jar文件)到WebContent\WEB-INF\lib目录下。
第三步:测试
启动Tomcat服务器,打开浏览器输入:http://localhost:8080/zkdemo/userguide/index.zul
分析:虽然我们已经成功的建立了一个ZK应用,但是我们也应注意,这个ZK应用的尺寸太过庞大,这是由于ZK框架包含了大量的jar文件,如果我们再新建一个ZK应用,我们不得不把ZK框架相关的jar文件再复制一份到应用的WEB-INF\lib目录下。另一个问题是如果应用发生变动,整个Web应用需要重新部署时,由于过多的jar文件造成应用重部署速度缓慢。
解决办法:我们可以将ZK框架相关的jar包复制到%TOMCAT%\common\lib下,这样我们就无需在WEB-INF\lib下放入任何ZK框架相关的jar文件,也就是说所有的应用都可以访问ZK框架相关的jar文件。
再分析:然而,问题还是存在,这次我们使用ZK,我们把ZK相关的jar文件放入%TOMCAT%\common\lib,那么,如果我们再使用Spring,也把Spring相关的jar文件放入相同的目录,其结果就是%TOMCAT%\common\lib目录下jar文件数量不断增加,并且,各个jar文件版本难以控制;另外,ZK本身也需要大量的配置信息,这些配置信息一部保存在web.xml文件中,同时,WEB-INF/下还有很多配置文件,如:zk.xml、portlet.xml、lang-addon.xml、t3-label.properties等,当我们建立新的ZK应用时,不得不把这些配置信息与配置文件再次复制。这使得部署在Tomcat下的ZK应用难以管理与维护。如何解决这个问题呢?这就要发挥商业软件的优势了。
ZK与BEA WebLogic Server BEA WebLogic Server 9.0及以后的版本引入了一个非常重要的新特性—J2EE共享库(J2EE Shared Libraries)。通过J2EE共享库可以将一个J2EE模块共享给其他企业应用(EAR包或EAR包的展开目录)的J2EE模块使用。也许你会觉得这个新特性听起来很抽象,没关系,我们结合一个实例来看看她的威力。
第一步:配置J2EE共享库
导入zkdemo(此过程与3.1相同),将项目名改为zk2.3-web-lib,将ZK相关Jar文件复制到WebContent\WEB-INF\lib目录下(此过程与3.1相同)
查看WebContent\META-INF的MANIFEST.MF文件,确认包含如下内容:
Specification-Version: 2.3.0
Implementation-Version: 2.3.0
第二步:导入WAR包
生成zk2.3-web-lib.war包
第三步:创建共享库
在BEA Workshop “Window”菜单上选择“Preferences”,然后在左边导航树上选择“WebLogic->J2EE Libraries
点击Add,选择刚生成的zk2.3-web-lib.war
第五步:创建WAR项目
创建名为zktestWAR的WAR项目
第六步:添加共享库
其实,这一步就是在weblogic.xml中写入配置信息,打开weblogic.xml文件可以看到以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
<wls:context-root>zktestWAR</wls:context-root>
<wls:library-ref>
<wls:library-name>zk2.3-web-lib</wls:library-name>
<wls:specification-version>2.3.0</wls:specification-version>
<wls:implementation-version>2.3.0</wls:implementation-version>
<wls:exact-match>true</wls:exact-match>
</wls:library-ref>
</wls:weblogic-web-app>
另外,我们也可以通过Merged Projects视图查看项目信息
在Merged Projects视图中,斜体字就是被引用的J2EE共享库资源,正体字是新建项目中的资源,如果我们想覆盖J2EE共享库某个资源,可以右键点击该资源,选择Copy To Project,然后在项目中任意修改被复制的资源。
第七步:测试
虽然我们只是建立了一个空的zktestWAR应用,但是由于使用了J2EE共享库特性,zkdemo中所有的配置信息(如:web.xml)、类库信息(所有在WEB-INF\lib目录下的jar文件)、标签、页面等都被共享使用。启动WebLogic Server,部署zktestWAR应用,打开浏览器输入:http://localhost:7001/zktestWAR/userguide/index.zul
分析:通过使用J2EE共享库特性,应用的尺寸变小,其重新部署时间大大缩减。同时,我们可以根据自己的面要配置不同J2EE共享库,如:Spring、Struts等,应用可以自主决定使用何种J2EE共享库,无需关注细节。
BEA Workshop开发环境配置
由于ZK页面使用的是基于XML的ZUL语言,因此,我们要想开发ZK时使用语法加亮,可以通过配置Eclipse来实现。
在BEA Workshop “Window”菜单上选择“Preferences”,然后在左边导航树上选择“General->Content Types
当我们打开.zul文件时,就可以看到语法加亮特性了,例如:
<?xml version="1.0" encoding="UTF-8"?>
<window title="My First window" border="normal" width="200px">
Hello, World!
</window>
如果你更喜欢象VB或是SWT Designer那样的可视化开发环境,也没有问题,我们可以使用eZing Builder(官方网站:http://ezingbuilder.sourceforge.net/cms/)。安装eZingBuilder插件如下图:
看看效果,是不是很炫!!
总结
BEA Workshop是一款强大的开发工具,可以用来开发包括ZK在内的各种应用。同时结合高质量的BEA WebLogic Server服务器引擎,大大加速了应用的开发与部署的速度,另外,通过使用BEA WebLogic Server的新特性(如:J2EE共享库)提高了应用的可管理性与可维护性。
查看本文来源如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者