科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道了解 Struts 框架的全新后代:Shale不是Struts(2)

了解 Struts 框架的全新后代:Shale不是Struts(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Shale 不是什么?Shale 不是打包好的、有编制好的文档并经过严格测试的产品,也没有附带自动安装程序和优雅的管理界面。那么 Shale 到底是什么呢?Brett McLaughlin 在本文中将揭开这个 Struts 后代的面纱。

作者:Brett McLaughlin 来源:IT专家网 2008年5月5日

关键字: 后代 框架 Struts java

  • 评论
  • 分享微博
  • 分享邮件
首先,如果您正在用某种框架从事某种 Web 开发,那么应该已经有了一些作为依赖项的项目。所以这份列表比它初看上去要容易管理得多。例如,任何 Web 开发人员都应该已经有 JRE 和 JDK,也应该有一个 servlet 引擎,例如 Jakarta Tomcat。如果已经有一个 servlet 引擎,那么也应该有 Servlet API 和 JSP 引擎。另外,大部分 servlet 引擎(至少就当前版本而言)都包括一个 JSTL,并且很多都附带了 JSF。最后,大多数开发人员很可能在他们的机器上已经安装了 Ant。因此,这份列表很快就只剩下这些了:
  •   JSF 1.1 或更高版本 (servlet 引擎中可能已经附带了)
  •   JSTL 1.1 或更高版本 (servlet 引擎中可能已经附带了)
  •   Jakarta Commons BeanUtils 1.7 或更高版本
  •   Jakarta Commons Chain 1.0 或更高版本
  •   Jakarta Commons Digester 1.7 或更高版本
  •   Apache Logging 1.0.4 或更高版本

  考虑到 Tapestry 实际上提供了将它的所有依赖项附带下载的选项,因此 “太多依赖项” 的问题很快就不成为问题了。

  现在您已经知道了大概,现在我们来看看下载、安装和配置 Shale 及其依赖项的步骤。

  1. 下载 Shale

  要下载 Shale,可访问 Shale 项目主页。您可以看到一个 “Shale Download” 区域,其中有 Shale 框架的每晚构建的链接。单击这个链接,便可以进入如图 1 所示的一个站点:

点击放大此图片

  图 1. 来自 Shale CVS 存储库的每晚构建

  为了使 Shale 运行,需要下载 “framework” 文件和 “dependencies” 文件。例如,在撰写本文时我下载了以下两个文件:

  •   shale-framework-20060204.zip
  •   shale-dependencies-20060204.zip

  当然,如果您需要或者更愿意下载 .tar.gz 版本,那么可以不选择 .zip 版本,而选择 .tar.gz 版本。由于 Shale 的开发还在进行中,目前还没有发行的构建,因此您应该尽量下载最近的每晚构建(具有最近的日期)。

  下载完这两个文件后,首先解压这两个归档文件。对于核心框架,解压后可以得到一个具有形如 shale-framework-20060204/ 的名称的文件夹;对于 dependencies 归档文件,解压后可以得到一个名为 lib/ 的文件夹。将核心框架目录 shale-framework-20060204/ 转移到您希望保存 Java 项目的地方。例如,在我的系统上,我将 shale-framework-20060204/ 移动到 /usr/local/java 目录中。接下来,将 lib/ 目录移动到 Shale 目录中,所以最后的目录结构与 shale-framework-20060204/lib/ 类似。

2. 添加 Shale 库到 Web 应用程序中

  下一步是将所有 Shale JAR 文件和库添加到 Web 应用程序可以访问和使用它们的位置。步骤如下:

  1. 如果在 servlet 引擎中没有包含 JSF,那么将 shale-framework-20060204/lib/jsf-ri/jsf-api.jar 和 shale-framework-20060204/lib/jsf-ri/jsf-impl.jar 复制到应用程序的 WEB-INF/lib 目录中。

  2. 将 shale-core.jar、shale-clay.jar、shale-tiles.jar 和 tiles-core.jar 从 shale-framework-20060204/dist/ 目录复制到 Web 应用程序的 WEB-INF/lib 目录。

  3. 将以下 Shale 依赖项复制到 Web 应用程序的 WEB-INF/lib 目录:

  •   o shale-framework-20060204/lib/commons-beanutils/commons-beanutils.jar
  •   o shale-framework-20060204/lib/commons-chain/commons-chain.jar
  •   o shale-framework-20060204/lib/commons-digester/commons-digester.jar
  •   o shale-framework-20060204/lib/commons-logging/commons-logging.jar
  •   o shale-framework-20060204/lib/commons-validator/commons-validator.jar

  4. 如果要使用 Shale 的 Spring 集成特性,那么将 shale-spring.jar 从 shale-framework-20060204/dist/ 复制到 Web 应用程序的 WEB-INF/ 目录。要完成这个步骤,还必须确保 Spring 的打包 JAR 文件也在 Web 应用程序的 WEB-INF/lib 目录中。这个 JAR 文件名为 spring.jar,如果您还没有这个文件的话,可以在 shale-framework-20060204/lib/shaleframework/ 目录中找到它。

  5. 如果正在使用 Java 5.0,那么将 shale-tiger.jar 从 shale-framework-20060204/dist/ 复制到 Web 应用程序 的 WEB-INF/lib 目录中。只有在使用 Java 5.0 的时候才需要执行这一步;否则,servlet 引擎和使用 Shale 的 Web 应用程序就会出问题。

  再往后走就开始复杂起来(是的,这些复制操作是较容易的一部分)。接下来的事情未必都要用最难的方式去做,至少我应该让您有机会选择 试试容易的方法。使 Shale 在系统上运行这个任务的确存在捷径;您已经知道手动设置 Shale 的过程比较复杂,接下来有必要看看 “简便” 方法。

  更容易的方法

  重新访问 Shale 下载站点,并下载名称类似于 shale-starter-20060204.zip 的 “starter” 应用程序。解压这个归档文件,将得到一个名为 shale-starter/ 的目录。这是一个基本上配置好的 Shale Web 应用程序,用于帮助避免前一节详细介绍的复制和配置工作。首先要做的是将 shale-starter/ 目录重新命名成应用程序以后要使用的名称,例如可以将它命名为 first-shale/。进入 first-shale/ 目录,在这里可以看到一些文件和子目录。

  在 first-shale/ 目录中,创建一个名为 build.properties 的新文件。通过这个文件可以定制如何构建 Shale starter 应用程序,并确保该应用程序适合您的环境设置。清单 1 展示了一个基本的 build.properties 文件,可以根据自己的环境对其进行定制。

  清单 1. Shale starter 应用程序的示例 build.properties

# Basic project information
project.copyright=My project, Copyright ? 2006
project.name=My First Shale Application
project.vendor=IBM DeveloperWorks
project.vendor.id=com.ibm.dw

# Java package and context path for servlet engine
project.package=com.ibm.dw.firstShale
project.path=first-shale

# Directory for Shale distribution - change this for your system
shale.dir=/usr/local/java/shale-framework-20060204

# Directory for all your libraries - change this for your system
lib.dir=/usr/local/java/shale-framework-20060204/lib

  根据系统设置好这些属性后,便可以运行 ant。Shale starter 应用程序开始构建 并(假设已经正确地设置了路径)创建一个示例应用程序。如果有问题,则构建脚本输出错误消息;这些错误消息都描述得很清楚,所以您应该可以更正任何错误。

  构建过程的最后将生成一个名为 target/ 的新目录。进入这个目录,可以看到一个名为 first-app(即您在 build.properties 中为项目指定的名称)的子目录。大多数 servlet 引擎都允许将这个目录整个地复制到 servlet 引擎的 webapps/ 目录。例如,我使用的是 Tomcat,于是我将构建脚本创建的整个 first-shale 目录复制到 /usr/local/java/tomcat/webapps。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章