ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 巧用 WAS CE 为应用程序“瘦身”

巧用 WAS CE 为应用程序“瘦身”

原创 Linux操作系统 作者:jeffche 时间:2009-05-21 09:12:35 0 删除 编辑

巧用 WAS CE 为应用程序“瘦身”

     通常,开发人员在开发 Java EE 应用程序时会用到各种各样的 Jar 包以支持应用程序的功能,这些 Jar 包有 JDBC 驱动包、JMS 服务器、Web 服务器包,JSF 或者 Dojo 工具包等等,在开发前期需要花很多的时间去下载并配置这些组件,而在分发部署时不得不将这些 jar 包和实际的应用程序一起打包,例如放在分发包的 /lib 目录,然后进行部署,这样导致应用程序分发包的“身材”过于臃肿,而核心应用程序可能只占整个分发包的很小一部分。另外不同的应用程序之间重用这些已有的组件,不得不通过配置类似 classpath 这样的参数,非常不便。


       WAS CE 通过其特有的组件存储库 (Repository) 和文件系统可以很好的解决这类问题,达到为应用程序“瘦身”的目的。

      作为一个完全通过 Java EE5 认证、基于开源技术的的轻量级应用服务器,WAS CE 在其发行版中已经包含了很多 Java EE 服务器所需的必要技术组件,例如 Apache Tomcat 作为 Web 服务器、OpenEJB 作为 EJB 服务器、Apache ActiveMQ 作为 Message 服务器、Apache Derby 作为数据库服务器等,这些组件已经足够用户开发符合 Java EE 标准的应用程序,不仅如此, WAS CE 中还提供了很多额外的组件如 DojoApache MyFace 等流行的开发框架的实施组件和多种数据库服务器的驱动程序,以尽可能支持应用程序的灵活性,这些组件都以模块 (Module) 的形式存放在存储库中,只要通过简单配置 WAS CE 部署计划(Deployment plan)文件,开发人员在分发部署时只需要分发自己的核心应用程序就行了。

      下面我们将简单介绍 WAS CE 组件存储库中模块的结构以及如何重用现有的模块。

        WAS CE 组件存储库位于 /Repository,其中WAS CE 服务器的安装路径。每个模块都有一个标识,由 GroupIDArtifactID、版本号(Version)、类型(Type)这四个字段构成,其在 WAS CE 中对应的位置是 /Repository/GroupID/ArtifactID/artifact-version.type。如下图所示

图中log4j-1.2.14.jar 的模块标识就是 log4j/log4j/1.2.14/jar

      因此只要遵循这个目录结构,用户就可以按照自己的需要添加相应的 jar 包,最简单的添加方式是通过 WAS CE 提供的管理控制台,然后指定对应的字段,WAS CE 服务器会自动在 /Repository 中为这个 jar 包创建目录。要在应用程序中引用这个 jar 包,用户只需要在部署计划文件进行简单配置即可。以上图中的 log4j-1.2.14.jar 为例,对于该模块的引用可以通过在计划文件的 代码段中定义 这个字段内容来实现。

...

...

log4j

log4j

1.2.14

jar


      如果不指定 1.2.14  这个字段,表示应用程序适用于任意版本的 log4j  组件。如果有多个组件需要添加并且引用,只要依次通过管理控制台加入到组件存储库中,然后根据添加时所指定的模块标识信息在部署计划文件中分别定义 即可。关于部署计划文件的更多内容,请参照 WAS CE 产品文档

      当用户需要在这台 WAS CE 服务器上部署其他应用程序时,而这些应用程序也依赖于先前已经加入到 WAS CE 组件存储库中的模块,那么用户只需要在新的部署计划文件中定义 的内容,就可以重用 WAS CE 中已有的组件,达到为应用程序"瘦身"的效果。 另外,WAS CE 可以对每一个添加到存储库中的组件进行管理,比如启动、停止或者卸载特定的组件,使得服务器管理的粒度更加的精细。


      如果用户有多个定制的 jar 包或者 .class 文件,不希望每次都通过管理控制台去添加 jar 包或者将这些 class 文件打包后再添加,也不希望对这些 jar 包进行更细粒度的管理,怎么办呢?针对这种情况,WAS CE 也提供了一个很好的解决方案。在 /var/shared 目录下,如下图所示:


      我们可以看到有两个目录 .classes lib,开发人员只需要将 .class 文件或者 jar 包拷贝到对应的目录,然后在部署计划文件中添加如下字段,就可以在应用程序中引用所有存在于这个目录中的内容。

...

...

geronimo

sharedlib

car

这样依然可以实现核心应用程序和通用组件之间的解耦。





Repository.jpeg

sharedlib.jpeg

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

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-05-21

  • 博文量
    1
  • 访问量
    2603