首页 > OOP语言 > 其它 > 正文

结合使用 Apache Geronimo 和 Lift
2012-08-22 18:05:19   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

用 Lift 创建 Web 应用程序并部署到 Geronimo

Lift Web 应用程序框架需要 Scala,而 Scala 依赖于 Java Development Kit,所以也需要安装 Java Development Kit。下面是编写本文时使用的软件。

Java Development Toolkit Scala 需要 JDK V1.5 或更高版本。我使用 Java V1.5.0_13。也可以使用 IBM Java 2 Platform。 Scala 我使用 Scala V2.6.1。根据 Scala Web 站点上的说法,Scala 软件发行版最好安装在 Unix® 或 Windows® 系统上,它需要 Java 2 Runtime Environment(例如 Sun Microsystems 或 IBM® 提供的 JRE)的 V1.4 或更高版本。 Apache Maven Lift 依靠 Apache Maven 设置项目、测试代码等。需要 Apache Maven V2.0.7 或更高版本,本文使用 V2.0.9。Apache Geronimo Lift 最好与 Jetty 一起使用,所以我使用带 Jetty 的 Apache Geronimo V2.1.1。一个数据库 在默认情况下,Lift 使用嵌入的 Apache Derby 数据库,但是也可以使用 MySQL 或 Postgres。

Lift 是用 Scala 编写的,但是本文不要求您熟悉 Scala。需要熟悉 Java 语言和 Java Web 编程。熟悉 Maven 会有帮助,因为 Lift 在许多方面都使用 Maven。

为什么要使用 Lift

在讨论如何下载库和执行脚本之前,应该先谈谈为什么要使用 Lift。毕竟,现在有许多其他 Web 框架,其中一部分也可以在 Geronimo 中使用。本文将讨论重要的 Lift 结构,包括片段和模型,以此说明用 Lift 创建和测试 Web 应用程序是多么容易。

Java Web 程序员有许多可供选择的 Web 框架。一些人甚至认为现在的 Web 框架太多了,让人无所适从。那么,在众多的 Web 框架中,Lift 处于什么位置呢?Lift 是用 Scala 编写的,而不是 Java。尽管 Scala 编译为 Java 字节码,但是与在 JVM 上运行的许多动态语言不同,它并不是某种包装器代码。Scala 是一种静态类型语言,作为快速的 “原生” Java 运行。这应该不令人吃惊,因为 Scala 的创建者曾经编写过 Java 编译器。因此,Scala 是一种表达能力比 Java 强得多的语言,但是它在 JVM 上运行,运行速度与 Java 一样快。这些性质使它非常适合实现 Web 框架 —— 这种强大的语言使我们编写的代码更少,同时保持出色的性能。

Scala 是非常出色的,那么 Lift 呢?Lift 充分利用了 Scala 的优点。它可以在任何 Java Web 容器中运行,因为它使用标准的 Java servlet 和 servlet 过滤器。Lift 的片段和模型充分利用了灵活的 Scala 语法。通过使用 Scala 的基于 actor 的并发系统,Lift 还能够出色地执行 Comet 风格的 Ajax。您不相信吗?我们来看看用 Lift 创建 Web 应用程序是多么容易。

创建 Lift 应用程序

任何 Web 应用程序框架首先需要下载,对吗?Lift 就不是这样。Lift 使用 Maven 完成所有工作,而且初始设置没有差异。但是,在开始使用 Maven 之前,一定要设置 SCALA_HOME 环境变量。然后执行以下命令。

清单 1. 创建新的 Lift 应用程序

$ mvn archetype:generate -U -DarchetypeGroupId=net.liftweb
-DarchetypeArtifactId=lift-archetype-basic -DarchetypeVersion=0.8
-DremoteRepositories=http://scala-tools.org/repo-releases
-DgroupId=org.developerworks.lift -DartifactId=quepasa
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] org.apache.maven.plugins: checking for updates from central
[INFO] org.codehaus.mojo: checking for updates from central
[INFO] artifact org.apache.maven.plugins:maven-archetype-plugin: checking for
updates from central
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]  task-segment: [archetype:generate] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] Setting property: classpath.resource.loader.class =>
'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:generate]
[INFO] Generating project in Interactive mode
[INFO] Archetype repository missing. Using the one from
  [net.liftweb:lift-archetype-basic:0.6 -> http://scala-tools.org/repo-releases]
  found in catalog internal
Define value for version: 1.0-SNAPSHOT: : 0.1
Confirm properties configuration:
groupId: org.developerworks.lift
artifactId: quepasa
version: 0.1
package: org.developerworks.lift
  Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating OldArchetype: lift-archetype-basic:0.8
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: org.developerworks.lift
[INFO] Parameter: packageName, Value: org.developerworks.lift
[INFO] Parameter: basedir, Value: /Users/michael/code/lift
[INFO] Parameter: package, Value: org.developerworks.lift
[INFO] Parameter: version, Value: 0.1
[INFO] Parameter: artifactId, Value: quepasa
[INFO] ********************* End of debug info from resources from generated POM
***********************
[INFO] OldArchetype created in dir: /Users/michael/code/lift/quepasa
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8 seconds
[INFO] Finished at: Wed May 21 21:49:56 PDT 2008
[INFO] Final Memory: 8M/14M
[INFO] ------------------------------------------------------------------------

相关热词搜索:

上一篇:使用 Apache MINA 2 开发网络应用
下一篇:将Spring和OpenJPA与WebSphere Application Server一起使用

分享到: 收藏