使用 和 hudson 在 oracle weblogic server...

44
使用 EclipseMaven Hudson Oracle WebLogic Server 上进行开发

Upload: vuongcong

Post on 12-Jan-2019

294 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

使用 Eclipse、Maven 和 Hudson 在 Oracle

WebLogic Server 上进行开发

Page 2: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

动手实践和用户详细信息

操作系统用户: oracle/welcome1

用户主目录: /home/oracle

WebLogic 主目录: /labs/wls1034

WebLogic 域: /labs/wls1034/user_projects/domain/auctionDev

WebLogic 管理员: weblogic/welcome1

WebLogic 控制台 URL: http://localhost:7001/console

WebLogic 端口: 7001

Oracle 数据库: Oracle XE Universal Database 10.2

Oracle SID: XE

Oracle 端口: 1521

Oracle 管理员: system/welcome1

Subversion URL: svn://localhost/otnvdd/obay/trunk

Subversion 用户: oracle/welcome1

WLS 开发动手实践: /home/oracle/labs/Dev_labs/labHome

WLS Maven 动手实践: /home/oracle/labs/Dev_labs/labHome/WLS_Maven

WLS OEPE 动手实践: /home/oracle/labs/Dev_labs/labHome/WLS_DEV_OEPE

简介

在本动手实践中,您将模拟在一个由以下软件组件构成的开发环境中工作:

Oracle WebLogic Server 11g R1 (10.3.4)

Oracle XE Universal Database 10.2

Apache Maven 3.0.1

Subversion

附带 Oracle Enterprise Pack for Eclipse 11gR1 (11.1.1.7) 的 Eclipse 3.6 (Helios)

Hudson 1.3.x

在今天的动手实践中,您将执行以下操作:

使用 Maven 构建一个多模块 Java EE 应用程序并将其部署到 WebLogic Server 中

使用 Oracle Enterprise Pack for Eclipse (OEPE) 和用于 Eclipse 的 M2 插件构建相同的多模块

Java EE 应用程序并将其从典型的 IDE 环境部署到 WebLogic Server 中

安装和配置 Hudson 以在 WebLogic Server 上运行,并创建 Maven 2/3 作业以构建 oBay

projectmvn

使用 Hudson 和 Subversion 对 Java EE 应用程序执行持续集成测试

Page 3: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

在本动手实践中,您将使用一个名为“oBay”的 Java EE 应用程序,该应用程序专用于提供在线拍卖/投

标系统。oBay 应用程序包括一组模块,这些模块使用 Java EE 技术组合开发、与 Oracle Coherence 结

合并用开源框架(例如 Spring 和 Spring-MVC)补充以处理整体应用程序的各个方面。

Subversion 用作开发环境的源代码控制管理系统。oBay 项目存储在本地 subversion 信息库中,并已签出

以便在本动手实践中使用。

oBay 应用程序是作为一个多模块 Maven 项目开发的。每个单独的模块使用一个项目描述文件 (pom.xml)

描述,并使用相应的 Maven 插件编译和打包构件。父项目定义项目设置并识别构成项目的子模块集。

Maven 用于编译、打包和管理整体项目。

在本动手实践中,新的 Oracle WebLogic Maven 插件用于将项目生成的 EAR 文件构件部署和取消部署到

WebLogic Server 域中。示例显示了将 Oracle WebLogic Maven 插件的部署目标绑定到 Maven 集成测试

生命周期阶段,以便应用程序作为标准 Maven 安装生命周期的一部分自动部署、测试和取消部署。

Eclipse/OEPE 用于显示如何直接在开发环境中使用相同的环境和 Maven 操作。

Hudson 持续集成服务器用于演示如何执行持续集成操作。Hudson 应用程序将部署到 WebLogic Server

中。使用 Hudson 控制台,直接通过存储在其 Subversion 位置的 oBay 项目创建新作业,并且作业本身了

解项目的 Maven 特性。收到执行构建的信号之后,Hudson 作业会直接从 Subversion 信息库中签出(或

更新)oBay 项目,使用 Maven 项目描述执行构建并在其信息板上报告结果。使用 Oracle WebLogic

Maven 插件,构建最终会将应用程序的自动部署整合到 WebLogic Server 域中,执行集成测试以验证应

用程序部署成功,并通过取消部署操作以干净的状态离开 WebLogic Server 域。集成测试的结果将用于

创建作业执行的整体结果。

了解 Maven 和 WebLogic Maven 插件

在本节中,您将使用命令行来了解 oBay Maven 项目。

使用桌面上的 WLS Terminal 启动程序打开终端:

Page 4: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

Apache Maven 3.0.1 已安装在 /opt/apache-maven-3.0.1 目录中,并且 bin 目录位于 $PATH 中。 在终端

中,您应该可以运行“mvn –version”并获取类似于如下的输出: [oracle@localhost obay-ee]$ mvn -version

Apache Maven 3.0.1 (r1038046; 2010-11-23 02:58:32-0800)

Java version: 1.6.0_21 Java home: /labs/wls1034/jdk160_21/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux" version: "2.6.18-194.el5" arch: "i386" Family: "unix"

如果您在运行“mvn –version”命令时遇到错误,并且不确定如何正确设置环境,请向讲师寻求帮助。

Apache Maven 配置

默认情况下,特定于用户的 Maven 存储在用户主目录下的 .m2/settings.xml 文件中。对于本动手实践,该

位置为 /home/oracle/.m2/settings.xml。您可能需要编辑 settings.xml 以配置 Maven 使用合适的代理服务

器来访问 Internet。由于动手实践环境中的本地 Maven 信息库中存储了所有的指定相关性和插件,因此不

必执行该操作。如果您认为有必要指定代理服务器来解析随后出现的所有相关性,请使用以下内容作为模

板:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0

http://maven.apache.org/xsd/settings-1.0.0.xsd">

<proxies>

<proxy>

<active>true</active>

<protocol>http</protocol>

<host>www-proxy.us.oracle.com</host>

<port>80</port>

<nonProxyHosts>localhost</nonProxyHosts>

</proxy>

</proxies>

<pluginGroups>

<pluginGroup>com.oracle.weblogic</pluginGroup>

</pluginGroups>

</settings>

本动手实践使用默认的 Maven 本地信息库,相应的地址为 /home/oracle/.m2/repository。从远程信息库下

载或者在该项目中构建和安装的所有构件都存储在此处。 此外,插件也存储在此处。如果有兴趣,您可以

查看该目录。

通过 Maven 构建 WLS 项目

在您的动手实践文件夹中,您可以找到一个名为 OBay 的 WebLogic Server Maven 项目,而您将使用

Maven 构建该项目并将其部署到名为 auctionServer 的 WebLogic Server 10.3.4 域中。

Page 5: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

已经为您创建 auctionDev 域,您应该使用 WLS Auction Dev Server 桌面启动程序为 auctionDev 域启动

管理服务器:

您应该在控制台输出中看到一条 <Server started in RUNNING mode> 消息,它表示服务器已成功启动

— 如果您未看到此消息,请使用虚拟会议环境聊天功能向讲师寻求帮助,确保环境正确无误:

使用桌面上的链接打开 obay-ee 文件夹:

该文件夹托管 oBay 应用程序并表示 Maven 项目的顶层目录。

Page 6: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

打开 oBay 项目的顶层 pom (obay-ee/pom.xml),方法是用鼠标右键单击它并在文本编辑器中将其打开。

查看文件及其设置的内容。请注意以粗体突出显示的属性,它们将用于指定 WebLogic Maven 插件的部署

目标。由于这是 oBay 项目的父 POM,因此所有子模块都将继承这些属性设置。

<?xml version="1.0" encoding="UTF-8"?>

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>oracle.demo.appgrid.obay</groupId>

<artifactId>obay</artifactId>

<name>OBay :: App Grid Application Sample</name>

<packaging>pom</packaging>

<version>1.0</version>

<description>Maven version of oBay</description>

<inceptionYear>2009</inceptionYear>

<url>http://scythe.ocsprojects.com</url>

...

<modules>

<module>AuctionModel</module>

<module>AuctionSecurity</module>

<module>AuctionUtils</module>

<module>AuctionServices</module>

<module>AuctionWeb</module>

<module>AuctionEAR</module>

<module>AuctionWebSvcClient</module>

</modules>

Page 7: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

...

<properties>

<wls.application.home>/labs/wls1034/user_projects/applications</wls.application.home>

<wls.domain.name>auctionDev</wls.domain.name>

<wls.adminurl>t3://localhost:7001</wls.adminurl>

<wls.user>weblogic</wls.user>

<wls.password>welcome1</wls.password>

</properties>

</project>

您还应该查看 AuctionEAR/pom.xml,该文件配置为使用 weblogic-maven-plug-in 并在顶层 pom 中设置了

相关属性:

<project xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-

v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>oracle.demo.appgrid.obay</groupId>

<artifactId>AuctionEAR</artifactId>

<packaging>ear</packaging>

<name>AuctionEAR</name>

<version>1.0</version>

...

<plugin>

<groupId>com.oracle.weblogic</groupId>

<artifactId>weblogic-maven-plugin</artifactId>

<version>${wls.version}</version>

<configuration>

<adminurl>${wls.adminurl}</adminurl>

<user>${wls.user}</user>

<password>${wls.password}</password>

<name>${project.build.finalName}</name>

<remote>false</remote>

<upload>false</upload>

</configuration>

...

<executions>

<execution>

<id>deploy</id>

<phase>pre-integration-test</phase>

<goals>

<goal>deploy</goal>

</goals>

<configuration>

<source>

${project.build.directory}/${project.build.finalName}.${project.packaging}

</source>

</configuration>

</execution>

Page 8: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

<execution>

<id>undeploy</id>

<phase>post-integration-test</phase>

<goals>

<goal>undeploy</goal>

</goals>

</execution>

</executions>

</plugin>

...

</project>

在 WLS Terminal 中,将目录切换至 WLS_Maven 动手实践:

> cd ~/labs/Dev_labs/labHome/WLS_Maven/obay-ee

依次执行 Maven 命令“mvn clean”和“mvn package”,使用父项目构建整个 oBay 应用程序。

> mvn clean

> mvn package

Page 9: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

执行这两个 Maven 命令将导致构建整体 oBay Maven 项目,而这又会相应地构建每个子项目。 对于该项

目,这将导致构建表示应用程序不同方面的七个子项目;例如域模型 (AuctionModel)、JPA/EJB 服务层

(AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用 AuctionEAR 项目将独立的子项目组装为一个

EAR 文件形式的可部署构件。

要部署 AuctionEAR 应用程序以便测试 WebLogic Server 域,您可以使用 weblogic-maven-plugin 并直接

在 Maven 中执行操作。

将目录切换至 AuctionEAR 项目文件夹并发出以下命令:

> cd AuctionEAR > mvn com.oracle.weblogic:weblogic-maven-plugin:deploy -Dsource=target/AuctionEAR.ear

Page 10: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

–Dsource=target/AuctionEAR.ear 属性指定供 weblogic-maven-plug-in 部署操作使用的部署构件

。weblogic-maven-plugin 使用的其余属性均通过父 Maven 项目中的属性设置获取。

完成部署之后,您可以验证应用程序已成功部署。在菜单栏中打开 Web 浏览器并使用以下 URL 测试应用

程序: http://localhost:7001/obay

Page 11: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

确认应用程序已成功部署之后,您可以关闭浏览器窗口并使用 weblogic-maven-plugin 和以下命令取消部

署应用程序:

> mvn com.oracle.weblogic:weblogic-maven-plugin:undeploy

Page 12: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

要查看 Maven 阶段与 weblogic-maven-goal 的自动绑定,您可以在 oBay 项目级别或者在 AuctionEAR 模

块上执行“mvn install”命令。这将构建、打包和安装构成整体 oBay 项目的构件。作为此生命周期的一

部分,将调用集成测试阶段,而这又会相应地执行 weblogic-maven-plugin 部署及取消部署目标。Maven

SureFire 插件在项目中用于执行一个非常简单的基于 HtmlUnit 的测试用例,以便通过检查主页的标题来

验证可以成功访问应用程序。

> cd ~/labs/Dev_labs/labHome/WLS_Maven/obay-ee > mvn install

以下屏幕截图分几个屏幕显示了此命令的输出。您将注意到 Maven 项目如之前看到的那样完成构建和打

包。但是,您现在还会看到更多操作,包括自动执行 weblogic-maven-plugin 部署目标以部署应用程序、

执行 SureFire 插件以运行 oracle.demo.auction.ear.SimpleITCheck 测试用例以便验证部署的应用程序,

以及最后执行 weblogic-maven-plugin 取消部署目标以在所用的 WebLogic Server 域中取消部署应用程序

您在 oBay 父项目上执行“mvn install”便可看到此内容。这会导致执行每个子模块,包括用于

将 weblogic-maven-plugin 绑定到 Maven 集成测试前/后阶段的 AuctionEAR 模块。

Page 13: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

然后显示以下屏幕内容。

调用 AuctionEAR 的“安装”生命周期时,将执行集成测试阶段并导致部署应用程序、执行集成测试用例

(SimplePageCheckIT) 以及取消部署应用程序。

Page 14: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

这类项目配置与持续集成测试相结合时极为有用,稍后我们在使用 Hudson 时便可注意到这一点。

在继续动手实践之前,请关闭运行中的 WebLogic Server auctionDev 域。(只需在显示服务器输出的窗

口中键入 Contro-C)。

Page 15: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

在 Eclipse/OEPE 中使用 Maven

如今,在 Eclipse/OEPE 中使用 Maven 的最简单方式是使用常见的第三方 m2eclipse 插件;动手实践映像

中的 OEPE 11.1.1.6 Helios 副本中已经安装了该插件。

单击“OEPE 11gR1 PS3 (Eclipse)”桌面启动程序,启动 Eclipse:

然后选择“WLS_DEV_OEPE”工作区:

请花几分钟使用具有 m2eclipse 插件的 Oracle Enterprise Pack for Eclipse (OEPE) 环境了解项目。

请注意工作区底部的 Maven Repositories 视图,您可以在其中查看本地信息库的内容。此外,请使用

OEPE 中的可用编辑器查看模块中存在的各种 POM 文件,例如 obay/pom.xml。

Page 16: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

选择 AuctionEAR/pom.xml 文件,并使用 Open with Maven POM Editor 选项打开 POM 编

辑对话框。您可以在此处查看 POM 配置,包括指定 weblogic-maven-plugin 执行与

Maven 阶段的绑定的插件配置:

对于本动手实践,我们将使用 WebLogic Server 插件在 OEPE 中启动和停止目标 WebLogic Server 实

例,因此在启动之前,请确保已关闭之前操作中的所有 WebLogic Server 实例(只需在显示服务器输出的

窗口中键入 Ctl-C)。

Page 17: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

工作区已经包含一个为本动手实践配置的 WebLogic Server 域。选择 Servers 视图(位于工作区底部),

右键单击服务器图标并选择 Start 以启动服务器。

几秒钟之后,您将看到在 Console 视图中显示服务器输出,并且应该很快看到表示服务器正在正常运行的

消息:

Page 18: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

要开始项目,请执行 maven 清理操作以删除之前构建的所有痕迹。为此,打开顶层 obay 对象并右键单击

pom.xml,然后选择 Run As -> Maven clean,您将在 Console 视图中看到 Maven 输出:

完成清理生命周期之后,您可以构建和打包应用程序。这将通过 Maven 打包生命周期完成。要运行“mvn

package”,请选择顶层 pom.xml,单击右键并选择 Run As -> Maven package:

Page 19: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

WebLogic Server 管理控制台对于开发人员和管理员都非常有用。它可以用于以图形方式执行部署/取消部

署以及创建 JDBC 连接池和 JMS 目标等服务器端资源。要使用它,只需在 OEPE 内部打开 WebLogic

Server 管理控制台(方法是转到服务器选项卡并双击 WebLogic Server 图标以显示服务器配置页面,然后

单击启动管理控制台的链接),或者在桌面浏览器中输入以下 URL 来打开 WebLogic Server 管理控制

台: http://localhost:7001/console。

以 weblogic/welcome1 身份登录并转到部署选项卡:

许多开发人员可能更希望在不退出 Eclipse 的情况下部署 oBay 应用程序,这时便可直接在 Eclipse 中使用

WebLogic Maven 插件。

打开 AuctionEAR 项目,右键单击 pom.xml 并选择 Run As -> Maven Build (Shift+Alt+X M),然后选择

AuctionEAR:deploy 选项:

Page 20: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

您应该看到 WebLogic Maven 插件正在部署应用程序 — 刷新管理控制台窗口以查看部署选项卡中列出的

新应用程序。

Page 21: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

您可以采用相同的过程在 Eclipse 中取消部署 oBay 应用程序,即依次使用 Run As -> Maven Build

(Shift+Alt+X M) 和 AuctionEAR:undeploy 选项:

在转到下一个选项卡之前,请先关闭 Eclipse。这将自动停止 Eclipse 已启动的 WebLogic Server 实例。

Page 22: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

结合使用 Hudson CI 服务器 与 WebLogic Server

在本动手实践中,您将了解如何轻松配置 Oracle WebLogic Server 以托管 Hudson CI,后者是一款专用于

Java 和 Maven 开发的常见持续集成系统。在此模拟环境中,您将使用现有 WebLogic Server 域

auctionDev 并将 Hudson Web 应用程序 (hudson.war) 部署到管理服务器中。 然后,您将为动手实践环境

配置 Hudson,在 oBay 项目的 Subversion 位置直接创建一个新的 Maven/23 作业,并运行构建以验证作

业。最后,您将在 Subversion 中对项目进行更新,这会自动通知 Hudson 并启动新的构建作业。

注意: 此配置并不理想,因为运行 CI 服务器的服务器与用于测试已部署应用程序的服务器相同。在典型

的架构中,这些服务器会相互分开,CI 服务器不会用于部署测试应用程序,也不会在需要重新启动时可能

遇到中断的情况。

第 1 步 — 启动 WebLogic Server auctionDev 域

已经为您创建 auctionDev 域,您应该使用 WLS Auction Dev Server 桌面启动程序为 auctionDev 域启动

管理服务器:

您应该在控制台输出中看到一条 <Server started in RUNNING mode> 消息,它表示服务器已成功启动 —

如果您未看到此消息,请向讲师寻求帮助,确保环境正确无误:

Page 23: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

第 2 步 — 部署 Hudson Web 应用程序 (hudson.war)

在看到 auctionDev 管理服务器已启动之后,打开浏览器会话并通过 http://localhost:7001/console 访问

WebLogic 管理控制台

使用以下身份登录到管理控制台: weblogic/welcome1。

在管理控制台窗口中打开 Deployments 选项卡,并单击 Install 开始部署过程。

在 /labs/wls1034/user_projects/applications/Hudson 目录中选择 hudson.war Web 归档并单击 Next:

Page 24: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

选择“Install this deployment as an application”并单击 Next:

Page 25: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

单击 Finish 完成部署:

Page 26: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

第 3 步: 配置 Hudson CI 服务器

将 Hudson CI 服务器部署到 WebLogic Server 之后,您可以在浏览器中输入 http://localhost:7001/hudson 以访问 Hudson Web 应用程序

Page 27: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

单击 Manage Hudson 以配置 Hudson CI 服务器,然后单击 Configure System 链接。

要配置 Hudson,您需要指定希望使用的 JDK 和 Maven 的安装位置。

对于 JDK:

单击 Add JDK 按钮并输入名称 JDK 1.6.0_21。指定 /labs/wls1034/jdk160_21 作为 JAVA_HOME 位置。

确保取消选中 Install automatically 框以指定现有安装。

对于 Maven:

单击 Add Maven 按钮并输入名称 Maven 3.0.1。指定 /opt/apache-maven-3.0.1 作为 MAVEN_HOME 位

置。确保取消选中 Install automatically 框以指定现有安装。

Page 28: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

滚动到配置页面底部并单击 Save 按钮。

第 4 步: 为 oBay 创建 Hudson 作业

在 Hudson 信息板中,单击 New Job 链接。

将作业名称指定为“oBay Project Build”,选择 Build 作为 maven2/3 项目选项并单击 OK。

Page 29: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

选择 Subversion 作为 Source Code Management 系统。

将 SVN Repository URL 指定为: “svn://localhost/otnvdd/obay/trunk/obay-ee”。

Page 30: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

向下滚动并选择 Poll SCM 选项。在 Schedule 字段中输入“@annually”。

向下滚动并在 Goals and options 字段中输入“clean install”,以便为此作业指定 Maven 生命周期。

保存配置。

Page 31: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

在 Project oBay 项目构建页面中,单击 Modules 链接以创建新 Hudson 工作区。单击 Run a build 链接以

启动构建过程。

Page 32: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

Build History 窗格中提供了指向当前正在进行的构建的链接。单击该链接,然后单击 Console Output 以查

看构建进度。您应该看到 Hudson 为项目创建了一个工作区,然后从 SVN 服务器下载项目文件:

Page 33: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

这可能需要一段时间。在 Hudson 将文件签出到项目工作区之后,您应该看到已启动 Maven 构建(“mvn

clean install”)。成功完成构建之后,您将看到 Hudson 构建的状态更改为成功(蓝色图标):

Page 34: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用
Page 35: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

浏览控制台输出,您将看到 weblogic-maven-plugin 正在执行以自动部署和取消部署应用程序(作为

Maven 安装生命周期的一部分),以及执行 SimplePageCheckIT 测试用例。这与您之前直接在命令行中

使用 Maven 时的输出完全相同。但是,您现在可以完全通过自动 Hudson 作业管理它。

Page 36: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

滚动到页面顶部并单击 Back to Project 链接以返回项目信息板。

然后,单击 Latest Test Result 链接。您将在此处看到我们之前讨论的相同集成测试用例中显示的结果。

Page 37: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

通过链接查看所执行的实际测试用例和结果。

Page 38: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

完成查看之后,单击页面顶部路径式导航栏中的 Hudson 链接,返回到整体 Hudson 作业页面。

其中应显示当前的整体项目状态,它会根据 Subversion 信息库的内容为您提供项目当前状态的即时视图

Page 39: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

第 5 步: 在 Subversion 签入之后查看自动 Hudson 构建

为 oBay Project 作业创建 Hudson 工作区之后,会直接使用托管 oBay Project 源代码的 Subversion 信息

库中的项目内容填充工作区。

由于 Hudson 掌握 Subversion 的信息,因此它会在 Subversion 中的源项目发生更改时获得通知。当

Hudson 收到所拥有作业的相关项目的更改事件时,它会启动新的构建作业以便从 Subversion 中签出最新

内容,然后执行构建、测试并报告当前项目状态。这样,在开发人员执行签入时,Hudson 便可持续监视

项目。

要查看此行为,您现在可对 oBay 项目中的文件进行更改,并将更改提交回 Subversion 信息库。这将导致

Hudson 启动新的构建作业,您可以直接在 Hudson 信息板中查看它。

通过桌面启动程序打开 WLS Terminal。

Page 40: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

将目录切换至 labs 目录下的 Maven 项目:

> cd labs/Dev_labs/labHome/WLS_Maven/obay-ee

使用 vi 对 FILE_TO_UPDATE 文件进行更改并保存文件。此文件与项目没有关系,它仅提供一种模拟开

发人员更改的方法。您可以更改文件内容或者添加任何内容并保存它。

使用 vi 之类的编辑器编辑文件:

>vi FILE_TO_UPDATE

现在,发出 Subversion 命令以检查项目状态:

>svn status

您应该看到 FILE_TO_UPDATE 已在本地修改:

M FILE_TO_UPDATE

成功完成更改之后,您现在将更改提交回 Subversion 信息库,然后快速切换到 Web 浏览器以查看

Hudson 信息板中的更改。

>svn commit –m ―Testing subversion change with Hudson‖

在 Web 浏览器中,您应该看到立即显示新的构建作业。 此构建作业通过 Subversion 启动,它使用 post-

commit 触发器通过 HTTP 将通知发送至 Hudson,以便向其告知项目更改。

Page 41: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

单击 oBay Project Build 链接以查看项目详细信息。

您将在此处看到已发生的最近构建的列表以及作业的状态和其他方面。

Page 42: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

单击 Last Build 链接以查看此特定构建的更多详细信息。您将在此处看到作业启动原因的详细信息,以及

有关在 Subversion 信息库中发现的更改的信息。

执行上述步骤之后,您应该看到 Changes 描述与用于将 FILE_TO_UPDATE 的更改提交给 Subversion 信

息库的消息相匹配。这表示构建基于您通过更改和提交文件导致的项目修订。

Page 43: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

这个简单的最终示例演示了 Hudson 可以即时更新其项目版本,并完全自动地执行构建、测试和报告项目

状态。

作为此自动构建的一部分,完全相同的 weblogic-maven-plugin 部署操作和集成测试运行将作为由

Hudson 作业执行的 Maven 安装生命周期的一部分执行。如果对实际应用程序代码进行更改并导致实际测

试失败,则 Hudson 可以非常快速地提供有关项目失败的反馈。

如果依次单击链接 Latest Build/Modules/AuctionEAR,您将看到一个用于查看一组已执行的 Mojo 的链接。

它将显示在所执行的 M<aven 生命周期中使用的 Maven Mojo 序列。 您将在此处看到 Mojo 执行序列,其中

包括 weblogic:deploy、integration-test、weblogic:undeploy。这显示了配置为作为 Maven 安装生命周期的

一部分自动执行的 weblogic-maven-plugin 目标的执行情况。

Page 44: 使用 和 Hudson 在 Oracle WebLogic Server 上进行开发download.oracle.com/.../tech/cn/OTNVD_WebLogicServerDevelopment_CN.pdf · (AuctionServices) 和 Web 前端 (AuctionWeb)。然后,使用

如果您希望了解更多信息,请单击链接返回到项目的最新构建,以查看测试结果。查看控制台输出,验证

部署和集成测试操作的执行。

如果您希望深入研究和查看集成测试失败的影响,可以对 SimplePageCheckIT.java 测试用例进行更改以

获得不同的预期结果。或者,您也可以查找作为主页呈现的页面的来源,并更新标题。然后,将更改签回

Subversion 并查看 Hudson 信息板有何变化。

结论

在本动手实践中,您了解了如何使用 WebLogic Server 来处理相对复杂的多模块 Maven 项目。您使用这

些模块提供的各种 Maven 项目描述构建了整体 oBay 应用程序,并使用一些 Maven 生命周期选项执行了

相关操作。

您使用 WebLogic Maven 插件将项目构件部署到运行中的 WebLogic Server 域中。您还了解了 WebLogic

Maven 插件部署目标与 Maven 阶段的绑定可让部署操作作为 Maven 安装生命周期的一部分自动执行,这

样便可针对在服务器上运行的应用程序的当前构建执行集成测试。

然后,您部署和配置了 Hudson CI 服务器以在 WebLogic Server 域上运行。您创建了新的 Hudson 作业

以自动测试 oBay 项目,并查看了启动手动构建的结果。最后,您了解了 Hudson 如何与 Subversion 集

成,以便于持续和自动监视签入到项目的更改。