关键字
文章内容
用Apache Geronimo创建并部署blog和wiki...
 
 
修改时间:[2011/06/08 13:55]    阅读次数:[1035]    发表者:[起缘]
 
blog 和 wiki 技术概述

从 20 世纪 90 年代末起(那时 Web 的繁荣正达到某个饱和点),一些用户开始编辑他们最喜欢的网站清单,这些网站符合一定的兴趣或主题。许多包含在用户清单上的条目都被加了评论,并标注了日期。这样的清单很快被称为 weblog 或 blog(博客),维护这样的 blog 的人被称为 blogger。后来,blog 开始变成文章的集合,通常以时间倒序的形式呈现,并与一个特定的主题相关。Wikipedia 对 blog 的定义如下:

早期的 weblog 仅仅是普通网站的手动更新组件。然而用于简化网络文章(以所谓时序性风格发表)生成及维护的工具的发展使得发表的过程在规模上更为庞大、技术含量更低并更加流行。最终导致了这种在线发布的类型,由此产生了今天的 blog。例如,使用一些基于浏览器的软件是当今 “blog” 的一种典型表现。可以通过专门的 blog 主机服务来托管 blog,blog 也能通过使用 blog 软件在一般的网络主机服务上运行。像其他媒体一样,blog 通常关注某一特定的主题,诸如食品、政治或本地新闻。一些 blog 以在线日记的形式存在。
在 blog 开始出现的同一段时间里,Ward Cunningham 发明了一项技术,这项技术允许任何人通过简单的编辑为 Web 页面做贡献。他将这项技术命名为 Wiki Wiki Web(来源于夏威夷语单词 wiki ,意为迅速 或快),后来这个名字被缩略到只有 wiki 。使用 wiki 的一项显著优势是用户可以当场向 Web 页面贡献内容。另外,因为编辑起来很简单,因而贡献内容时不需要任何特殊的软件。可以在 Wikipedia Web 的百科全书上找到更多关于 wiki 技术的信息,该网站本身就是使用 wiki 技术实现的。(参见 参考资料 上的链接)。

协作性应用程序

这就是 Web 2.0 的全部,尽管该术语出现才几乎一年的时间,但现在好像只有烹饪杂志还没有加入到讨论 Web 2.0 未来出路的行列中。自从出现了里程碑式的文章 “What Is Web 2.0: Design Patterns and Business Models for the Next Generation of Software”(此文由 Tim O'Reilly 在 2005 年 9 月所写,参见 参考资料 中的链接),对 Web 2.0 这一由该文创造的术语的赞同或反对之声一直没有间断。尽管如此,大多数人都认同了 Web 业已改变并进入了一个新的发展阶段,这是带其步入下一个逻辑高度的阶段。在 O'Reilly 的文章中,他阐释了任何 Web 2.0 公司必须具备的核心元素:

提供低成本高收益的可扩展的服务,而非打包的软件
控制惟一且难于重建的数据源,该数据源会随着使用人数的增多而变得更加丰富
相信用户可以成为协助开发者
利用集中的智慧
通过客户自助服务来克服服务的缺点
超出单一设备水平的软件
轻量级的用户界面、开发模型和 业务模型
在本质上,这些元素为真正的 Web 2.0 风格的应用程序定义了标准。按照这些对一个给定的应用程序进行测试,会让您对 Web 2.0 在 Web 的整个发展进程内处于何种位置有个很好的认识。

然而,Web 2.0 应用程序的一个最有趣的方面是,它要求开发者和参与者达到相当高的协作程度,这样才能实现好的结果。协作对于 Web 2.0 的发展来说是 一个重要的组成部分,这个观点被许多现代企业认同。blog 和 wiki 都是 Web 2.0 技术,它们允许用户针对一个特定主题或想法进行协作。blog 允许很方便地对一个主题进行评论,并大大提高了决策制定的效率;wiki 则提供了一个便利的机制,允许用户基于自己的专长和观点对内容进行实际的改变。

本文指导您在 Apache Geronimo 应用服务器上部署自己的 blog 和 wiki 组件。

准备好部署 blog 和 wiki 组件

要在 Geronimo 上部署 blog 和 wiki 组件,首先需要安装 Geronimo 应用服务器。可以从 Geronimo 网站(参见 参考资料 上的链接)上获取 Geronimo 的安装包,并按照安装指南进行安装,安装指南也可以在 Geronimo 网站上获取。请注意 Geronimo 1.0(用于为本文做准备)并不是在 Java™ 1.5 上运行,而是在 Java 1.4(参见 参考资料 上的下载链接)上运行。

同样,本文中使用的一些组件需要安装 MySQL 数据库(参见 参考资料 中的链接来下载安装包)。编写本文用的是 MySQL 5.0.16。该产品的默认设置就可以满足我们的要求。

除了 Geronimo 应用服务器和 MySQL 数据库服务器,还需要实际的 blog 或 wiki 组件。在本文中,将使用 XWiki 实现 wiki 功能,同时使用 blojsom 作为 blog 模块。

安装并部署 wiki 组件(XWiki)

要在 Geronimo 应用服务器上安装 XWiki 组件,需要下载一个样例 XWiki 数据库并将文件 xwiki-db-xxx.zip 解压到一个临时位置。档案中包含的 SQL 文件中包含了脚本,这些脚本用于创建并填充所有需要的数据库表。然而,需要自己创建数据库。能够通过打开 MySQL 命令提示(mysql -uusername -ppassword)并输入下列命令来创建这个数据库:

create database xwiki;
use xwiki;


现在,需要给用户 xwiki 授予足够的权限从而使其能操作数据库,通过输入下列代码来实现:

grant all privileges on xwiki.* to xwiki@localhost identified by 'xwiki';


此时,已经创建了数据库,正确的权限被授予 xwiki 系统用户,所以能够从目录(将 SQL 文件解压到的位置)中通过输入下列命令来导入样例数据库:

mysql -u xwiki -pxwiki xwiki < xwiki.sql


创建好数据库,就可以安装包含 XWiki 模块的 Web ARchive(WAR)文件了。需要在 Geronimo Administrative Console(缺省的位置是 http://localhost:8080/console)中完成这一任务,并用管理员证书(缺省是 system/manager)登录。在成功登录到 Geronimo Administrative Console 后,进入到 Applications 分类下的 Deploy New 菜单,并按照 Geronimo 标准部署步骤部署 xwiki.war。图 1 展示了部署页面的外观。


图 1. 部署屏幕
 

安装了应用程序后,它就会显示在 Web App WARs 清单中,如 图 2 所示。


图 2. Web App WARs 清单
 

注意:不幸的是,同 XWiki 包一起提供的 Hibernate 库的版本和 Geronimo 应用服务器所包含的同一个库的版本相冲突,因而需要在配置中进行小小的更改。要改变 xwiki 的配置,需要进入 <Geronimo_Home>/config-store/ 下包含部署好的 xwiki.war 包的目录。能够通过打开存储于 <Geronimo_Home>/config-store/ 根目录下的 index.properties 文件,并在其中找到与 XWiki 模块相对应的条目来确定该目录。访问 index.properties 文件中引用的目录并打开 ../war/WEB-INF/hibernate.cfg.xml 来编辑它。定位到属性元素的末尾并将下列属性添加到清单中:

<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>


这样就解决了库的问题。

现在,可以定位到刚部署好的 wiki 主页(http://127.0.0.1:8080/xwiki/bin/view/Main/WebHome)并好好享受了。图 3 显示了该页面的外观。


图 3. 刚部署好的 wiki
 

安装并部署 blog 组件(blojsom)

将 blojsom blog 模块安装并部署到 Geronimo 应用服务器中甚至比配置 XWiki 还要简单。如前所述,所需做的仅仅是打开 Geronimo Administrative Console 并进入 Deploy New 菜单。部署 blojsom.war 模块,方法同已经部署的 xwiki.war 类似。图 4 显示了控制台屏幕的外观。


图 4. 部署 blojsom WAR 模块
 

安装了这个模块后,将浏览器转到 http://localhost:8080/blojsom/blog/default/,就能够访问刚部署好的应用程序了。

能够按照 wiki 和 blog 模块各自主页上的管理说明进一步配置这两个模块。

 部署 XWiki 的注意事项
在部署 XWiki 模块时发现的惟一问题是不同版本的 Hibernate 库间的冲突,这已经通过更新配置成功地解决了。
 
结束语

本文探讨了如何将 wiki 和 blog 模块部署到 Geronimo 应用服务器上。这说明在 Java 2 平台企业版本(J2EE)兼容的应用服务器上运行 blog 或 wiki 应用程序不会存在大的问题。

总的来讲,Apache Geronimo 应用服务器是满足开发需求的一个功能强大的选择,它为小型组织或企业运行协作型应用程序提供了一个坚实的平台。