技术开发 频道

WAS CE部署工具和部署方法

 【IT168 技术文章】

    引言

    WAS CE 即WebSphere Application Server Community Edition 的简称,它是一个轻量级的 Java? 2 Platform Enterprise Edition (J2EE) 应用服务器。有关 WAS CE 的基本概念和目录结构更详细的信息,请参阅参考资料。

    本部分主要介绍 WAS CE 的部署工具,常用的三种部署方法:命令行部署、控制台部署和热部署,以及两种部署模式:本地部署和远程部署。

    WAS CE 提供的部署工具,可用来安装、卸载、重安装、启动、停止应用和模块,也可用来安装、卸载配置信息,如部署计划的配置、安全域以及数据库连接池的配置信息等。可由命令行的方式调用部署工具,也可通过基于图形界面的控制台访问。下面分别介绍。

    本文描述的部署方法和部署模式适用于 WAS CE V1.0.1.2或更新版本。

    注:本文中%WASCE_HOME%表示 WAS CE 的安装目录;%Sample_HOME%代表预部署示例的存放目录。文中的例子各种命令的使用以 Windows 下的用法为例。

    三种部署方法

    1.命令行部署

    当 WAS CE server 启动后,进入 WAS CE 安装目录下的bin目录,在这里可由两种方式激活部署工具:

    java -jar deployer.jar <general_options> <command> <command_options>

    deploy[.bat|sh]  <general_options> <command>  <command_options>

    general_options 定义了常规选项,适用于所有的命令。command_options 则指出针对各个指令的特殊选项。

    1.1 常规选项

    --uri <identifier>

    可选项。常用于远程部署。

    <identifier>是一个服务器要连接到的URI。如果<identifier>没有定义,部署工具将试图用本机 localhost 的标准端口 1099 连接服务器。

    URI有严格的使用格式:

    deployer:geronimo:jmx:rmi:///jndi/rmi:[//host[port]]/JMXConnector

    --host <host>

    可选项。

    既可用于本地部署,也可用于远程部署。

    在本地部署时,其默认值 localhost。而在远程部署中,<host>即是应用和资源将要部署到的服务器所在的主机名或 IP。

    --port <port>

    可选项。

    <port>即 server 的端口号,默认值 1099。如果在部署应用或资源之前,修改了 config.xml 文件中对应应用或资源的 port 值,则在部署时,必须用--port <port>明确说明。

    --driver <driver_path>

    可选项。

    您不仅可以在 WAS CE 上使用部署工具,也可以在任何遵循 JSR-88 的服务器上使用部署工具。对于非 WAS CE 服务器,必须由<driver_path>提供包含 JSR-88 部署实现类的 jar 文件。

    --user <username>

    必选项。

    这是身份验证时使用的用户名。如果没有提供用户名,则会提示您输入一个用户名。WAS CE 的缺省管理员用户名是"system"。

    --password <password>

    必选项。

    这是身份验证时使用的密码。如果没有提供密码,则 WAS CE 会尝试不用密码进行连接。如果连接失败,则会提示您输入一个密码。WAS CE 对于"system"管理员用户的缺省密码是"manager"。

    --syserr <select>

    可选项。

    <select>对应Boolean,如果为true,则将错误记录到syserr设备中。缺省值为false。

    --verbose <select>

    可选项。

    <select>对应 Boolean,如果为 true,则将调试信息输出到标准输出。缺省值为 false。

    要获得常规选项的所有列表,请输入:

    deploy[.bat|sh] help options

    1.2 常用命令--command

    WAS CE 提供了多种指令用于管理应用程序部署。

    常用的指令如下:

    deploy

    login

    redeploy

    start

    stop

    undeploy

    其他的指令:

    distribute

    list-modules

    另外,您可以用 help 指令查看某个指令的更详细的信息。具体格式为:

    deploy[.bat|sh] help <command>

    1.2.1 deploy

    deploy 既可用于本地部署,也可用于远程部署。

    同时,deploy 必须在 WAS CE Server 已经启动后才能使用。

    进入 WAS CE 安装目录下的bin目录,双击startup.bat 启动server。

    WAS CE Server 启动后,将显示已经启动的 module,Web Application,以及各个 Connector 和对应的侦听端口。如下图所示:

   

 

 

 1.2.1.1 deploy 的使用格式

 

    1)本地部署

    详细请参考 1.2.1.1 deploy 的使用格式。

    2)远程部署

    其使用格式:

    java -jar deployer.jar --uri

    deployer:geronimo:jmx:rmi:///jndi/rmi:[//host[port]]/JMXConnector

    <general_options> deploy <module> <deployment_plan>

    或

    deploy.bat --uri

    deployer:geronimo:jmx:rmi:///jndi/rmi:[//host[port]]/JMXConnector

    <general_options> deploy <module> <deployment_plan>

    例:

    deploy --uri deployer:geronimo:jmx://hostname --user system --password

    manager deploy %Sample_HOME%\hello-1.0.war

    窗口显示执行的操作和部署结果:

    Uploading 1 file(s) to server

    File upload complete  (Server :OK)

    1 file(s) transferred to server. Resuming deployment operation.

    Deploy com/ibm/websphere/ce/samples/hello @

    http://<hostname>:<port>/hello

    此时,访问 http://<hostname>:<port>/hello 即可看到预期的内容。

    1.2.2 login

    这个指令用来为当前的连接保存用户名和密码,并把这个认证信息保存到位于用户目录下的 .geronimo-deployer 文件中。以后到同一个服务器的连接都尽可能地使用已经保存下来的认证信息,而不再给出提示。

    连接到不同服务器的认证信息将单独保存,因此,您可以在命令行中用 --port 或 --host 或 --url 来指出连接到不同服务器的认证信息。

    格式为:

    deploy[.bat|sh]  --user <user_name> --password <password> login

    login 之后,当您下次使用不同的指令时,就不用再输入用户名和密码,可以直接使用了。如:

    deploy[.bat|sh]   list-modules

    1.2.3 redeploy

    使用这个指令来停止、重新部署、启动先前已经部署的模块。

    格式为:

    deploy[.bat|sh]  <general_options> redeploy <module>

    <deployment_plan>

    和 deploy 指令一样,redeploy 可以部署以下类型的模块:

    J2EE Enterprise Application Archive (EAR) file

    J2EE Web Application Archive (WAR) file

    J2EE Enterprise JavaBean Archive (JAR) file

    J2EE Java Resource Archive (RAR) file

    1.2.4 start

    start 指令用来启动已经部署的模块。

    格式为:

    deploy[.bat|sh]  <general_options> start <moduleIDs>

    可以同时启动多个模块,此时,moduleIDs 用空格间隔即可。

    可以用 list-modules 指令来查看各个模块的 moduleID;也可查看各个模块的部署计划以得到 moduleID 的有关信息。

    1.2.5 stop

    停止正在运行的模块。

    格式为:

    deploy[.bat|sh]  <general_options>  stop  <moduleIDs>

    可以同时停止多个模块,此时,moduleIDs 用空格间隔即可。

    可以用 list-modules 指令来查看各个模块的 moduleID;也可查看各个模块的部署计划以得到 moduleID 的有关信息。

    1.2.6 undeploy

    从服务器上停止、删除模块及其所有的部署信息,而不管该模块当前是否正在运行。 格式为:

    deploy[.bat|sh]  <general_options>  undeploy  <moduleIDs>

    可以同时删除多个模块,此时,moduleIDs 用空格间隔即可。

    可以用 list-modules 指令来查看各个模块的 moduleID;也可查看各个模块的部署计划以得到 moduleID 的有关信息。

    1.2.7 distribute

    用来部署一个新的模块。与 deploy 不同的是,distribute 不启动模块,当需要运行通过 distribute 指令部署的模块时,需要执行 start 指令。而 deploy 则启动模块,相当于在部署的同时执行了 start 操作。

    格式为:

    deploy[.bat|sh] <general_options> distribute <module> <deployment_plan>

    有关<module>和<deployment_plan>的说明请参考 1.2.1.1 deploy 指令。

    1.2.8 list-modules

    列出在服务器上所有可用的模块。必须在服务器运行时才能使用该指令。

    格式为:

    deploy[.bat|sh] <general_options> list-modules [--all | --started | --stopped]

    --all

    默认值。列出所有可用的模块。

    --started

    列出正在运行的模块。

    --stopped

    列出停止的模块。


    2. 控制台部署

    2.1 简单描述和首页

    WAS CE 控制台是基于 web方式的图形操作界面,给您提供方便友好的管理 WAS CE 服务器的方式。既可用于本地部署,也可用于远程部署。

    只要 WAS CE 服务器已经启动,就可以通过 http://localhost:8080/console 访问控制台。

    首页面如图所示:

    输入 WAS CE 的 administrator 用户名 system 和密码 manager,即可登录到 WAS CE 的欢迎页面。

    对于一些需要访问数据库的复杂应用,部署的基本步骤是:

    1)创建数据库和表

    2)配置、部署数据源

    3)部署应用

    对于一些简单的部署,不需要数据源,直接部署应用即可。

    WAS CE 的下载网站提供了示例程序包(wasce_samples-1.0.1.2.zip)可供用户下载,在这个示例程序包中有一个用于演示员工信息的 empdemo 的示例,本文以 empdemo 为例说明如何通过控制台配置数据库,以及部署应用程序。

    2.2 创建数据库

    WAS CE 内嵌了 IBM Cloudscape 数据库,因此可以在控制台使用 DB Manager 创建 IBM Cloudscape 数据库如 Employee,并完成建表的操作。

    对于其他非内嵌的数据库如 oracle,DB2 等,需由数据库自带的工具来完成创建数据库,建表的功能。

    2.3 配置、部署数据源

    在 Database Pools 下用 Geronimo database pool wizard 为数据库 Employee 建立数据源 jdbc/EmployeeDataSource。

    首先命名数据源,并选择正确的数据库类型。

    点击"next",为数据源选择驱动,配置最大连接数,最小连接数等。

    当选择配置完成后,点击"show plan"查看数据源部署计划,点击"Deploy"部署数据源。 IBM Cloudscape 数据源部署计划 Cloudscape-db-plan.xml 如下(部分):

    <dependency>

    <uri>org.apache.derby/derby/10.1.2.ibm/jar</uri>

    </dependency>

    <dependency>

    <uri>org.apache.derby/derbynet/10.1.2.ibm/jar</uri>

    </dependency>

    <resourceadapter>

    <outbound-resourceadapter>

    <connection-definition>

    <connectionfactory-interface>javax.sql.DataSource

    </connectionfactory-interface>

    <connectiondefinition-instance>

    <name>jdbc/EmployeeDatasource</name>

    <config-property-setting

    name="UserName"></config-property-setting>

    <config-property-setting

    name="Password"></config-property-setting>

    <config-property-setting name="DatabaseName">Employee

    </config-property-setting>

    <config-property-setting name="CreateDatabase">true

    </config-property-setting>

    对于非内嵌的数据库,需将数据库驱动添加到 WAS CE 的存储库(repository)。如向 WAS CE 存储库添加 IBM DB2 的 JDBC 驱动。

    %WASCE_HOME%/repository/com.ibm.db2/jars/db2jcc-8.2.jar

    %WASCE_HOME%/repository/com.ibm.db2/jars/db2jcc_license_cu-8.2.jar

    DB2 数据源部署计划 DB2-db-plan.xml 如下:(部分)

    <dependency>

    <uri>com.ibm.db2/db2jcc/8.2/jar</uri>

    </dependency>

    <dependency>

    <uri>com.ibm.db2/db2jcc_license_cu/8.2/jar</uri>

    </dependency>

    <resourceadapter>

    <outbound-resourceadapter>

    <connection-definition>

    <connectionfactory-interface>javax.sql.DataSource

    </connectionfactory-interface>

    <connectiondefinition-instance>

    <name>jdbc/EmployeeDatasource</name>

    <config-property-setting name="UserName">db2inst1

    </config-property-setting>

    <config-property-setting name="Password">password

    </config-property-setting>

    <config-property-setting name="Driver">com.ibm.db2.jcc.DB2Driver

    </config-property-setting>

    <config-property-setting name="ConnectionURL">

    jdbc:db2://localhost:50000/Employee

    </config-property-setting>

    在WAS CE 中,数据源与应用一样,都作为一个模块处理,因此部署数据源,既可以像上面那样直接点击"Deploy"完成部署,也可以使用命令行部署,或者在控制台用 Deploy New 指定驱动和部署计划完成部署。

   

    2.4 部署应用

    使用 Deploy New,指定要部署的模块和部署计划,点击 install 按钮就可完成部署任务。

    3. 热部署

    热部署是 WAS CE 提供的另一种部署方式。仅用于本地部署。

    3.1 部署

    在 WAS CE 安装目录下,有个 deploy 目录,所有需要部署的应用或模块都可以放在该目录下,WAS CE 会自动检测到该目录下的文件,并部署。

    例如:将需要部署的 hello 应用程序对应的文件 hello-1.0.war 拷贝到 deploy 目录,则在 Serve Window 下将提示模块部署成功,同样,在 Commad Line 下,用 list-modules 命令也可看到该应用已经部署成功。

    用 list-modules 查看结果如下:

    + com/ibm/websphere/ce/samples/hello @ http://<hostname>:<port>/hello

    访问 http://<hostname>:<port>/hello 即可看到显示预期的内容,表明热部署成功。

    对于有部署计划的应用或模块,在热部署时,需要将部署计划和程序一同打包成支持的一种类型,然后放到deploy目录。

    有关部署计划的格式和存放位置详细信息,请参考 WAS CE部署计划。

    3.2 删除

    通过热部署部署的应用或资源,要删除时,可以直接删除 deploy 目录下相应的文件,即可完成卸载。

    4. 结束语

    本文详细介绍了 WAS CE 的部署工具,两种部署模式和三种部署方法,并举例加以说明。对初级读者,希望本文能有所帮助。在本文的基础上,相信读者应该能够着手部署自己的应用程序了。
 

0
相关文章