打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jboss4.0安装及duke‘s bank部署心得
hasek2005-12-07 14:35
早几天下载了下jboss的最新版本4.03sp1(http://www.jboss.com/),感觉还不错,顺便根据提供的
《Getting Started with JBoss 4.0》指南,部署了下duke’s bank 银行例子,感受下用j2ee部署一个完整应用的经历,对于想步入j2ee的初学者而言,感受下这种经历是有帮助,此次实例的应用不涉及j2ee代码编写,不过可以给初学者对j2ee部署有个感性的认识。

准备工作:
jdk肯定是必须先有的啊,最好设置好Java_home变量
  1.jboss4.03sp3应用服务器(http://www.jboss.com/)下载
2.j2ee-1_4-doc-tutorial_2.zip(http://www.sun.com/)具体地方大家主动搜索吧;-)关键点:一定要是这个版本的tutorial,要不然部署就不会成功
  3.jbossj2ee-src.zip(这个比较难找,我提高网址给大家)
http://wiki.jboss.org/wiki/attach?page=ClusteringDemoUsingDukesBankJ2EE1.4%2Fjbossj2ee-src.zip
  4.ant软件(http://www.apache.org/)自己在那个网站上下载吧,不提供现成的给大家,免得你们太依赖了;-)最新版本的是1.65的,解压就ok了,为了方便,在环境变量里面设置好path。

开始步骤

1、 将j2ee-1_4-doc-tutorial_2.zip解压,出现j2eetutorial14 目

录,所有的Duke 银行应用代码位于examples/bank子目录中。然后正常解压jbossj2ee-src.zip,注意解压到j2eetutorial14目录下,出现覆盖提示时 不用管它,选择是就可以了,然后用户将在这个目录下看到一个看到jboss-build.properties文件。在构建Duke 银行应用之前,用户需要设置如下信息。即,编辑j2eetutorial14 目录中的
jboss-build.properties 文件,以定位JBoss 4.0.2 的安装目录。其中,需要将jboss.home 属性定位到JBoss 4.0.2 安装的完整路径。则用户需要设置如下信息。(蓝色部分修改为你们jboss服务器安装路径)

QUOTE:
# Set the path to the JBoss directory containing the JBoss application server
# (This is the one containing directories like "bin", "client" etc.)

jboss.home=E:/Program Files/jboss-4.0.3SP1(此处特别小心,斜杠一定是这样打才行哦,用 \ 这个斜杠 ant的时候出现问题)jboss.server=${jboss.home}/server/default
jboss.deploy.dir=${jboss.server}/deploy


2、 编译Java 源文件

打开命令行,然后转到j2eetutorial14/exampe/bank 目录。所有的Ant 构建命令都是在此执行的。编译工作非
常直观,即敲入如下命令,以调用compile 目标。

QUOTE:
ant -f jboss-build.xml compile


如果没有出现错误,则用户将发现新创建的build 目录,其中包含了.class 文件。

3、打包EJB

该应用含有一EJB jar,即bank-ejb.jar。bank-ejb.jar 含有代码和描述符(ejb-jar.xml 和
jboss.xml),以用于实体Bean 和与客户交互的控制会话Bean。Ant 目标package-ejb 将会把
创建的bank-ejb.jar 存放到jar 目录。

QUOTE:
ant -f jboss-build.xml package-ejb


4、 打包WAR 文件

下个Ant 目标是提供前端支持的Web 应用,从而实现用户与业务组件(EJB)的交互。
其中,src/web 目录含有的Web 资源(JSP、图片、等等)原封不动地添加到存档中。Ant war
任务也能够添加WEB-INF 目录,Web 浏览器并不能直接与该目录中的内容进行交互,但是
其内容是Web 应用的组成部分。Web 应用具体包含的内容有部署描述符(web.xml 和
jboss-web.xml)、类文件(比如,Servlet 和EJB 接口)、其他WAR 要求的库和JSP 标签库描
述符。Ant 目标package-web 能够构建Web 客户,即WAR 文件。

QUOTE:
ant -f jboss-build.xml package-web


5、 打包Java 客户

除了Web 界面外,还存在单独运行的Java 客户应用,用于管理顾客和账号。使用Ant
目标package-client 如下:

QUOTE:
ant -f jboss-build.xml package-client


其生成的app-client.jar 文件含有application-client.xml 和jboss-client.xml 描述符。另外,
还包括jndi.properties 文件。同时,客户JAR 文件也将包含在EAR 文件中,以作为附加的
模块。

6、集成EAR

EAR 文件是完整的应用,即含有3 个EJB 模块和1 个Web 模块。而且,它还必须包含
application.xml 描述符。当然,可以单独部署EJB 和Web 应用模块,但是EAR 提供了单一
的、便于操作的部署单元。Ant 目标assemble-app 将创建JBossDukesBank.ear。

QUOTE:
ant -f jboss-build.xml assemble-app


7、数据库

在部署应用之前,用户需要完成其数据库配置。如果应用中使用了CMP,则可以通过
配置CMP 引擎,使得在部署时自动创建表。否则,用户需要创建SQL 脚本。对于存在初始
化数据的DB 而言,手工创建表也是较好的办法。

7.1、 启用HSQL MBean 和TCP/IP 连接

HSQL 数据库能够以如下两种方式运行:进程内或客户-服务器(HSQL 文档称之为,服
务器模式)。由于用户需要使用能够连接到DB 的工具,以运行SQL 脚本,因此必须保证数
据库以客户-服务器模式运行,并能接受TCP/IP 连接请求。默认时,最新的JBoss 发布版将
客户-服务器模式禁用了,这主要考虑到安全性要素,因为如果默认登陆账号没有修改将导
致安全性问题。因此,用户需要打开设置了默认数据源的deploy/hsqldb-ds.xml 文件。在文
件的开始部分,能够看到connection-url 元素。其取值必须是

QUOTE:
jdbc:hsqldb:hsql://localhost:1701,
而且其他connection-url 元素值必须注释掉。
<!-- The jndi name of the DataSource, it is prefixed with java:/ -->
<!-- Datasources are not available outside the virtual machine -->
<jndi-name>DefaultDS</jndi-name>
<!-- for tcp connection, allowing other processes to use the hsqldb
database. This requires the org.jboss.jdbc.HypersonicDatabase mbean. -->
<connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
<!-- for totally in-memory db, not saved when jboss stops.
The org.jboss.jdbc.HypersonicDatabase mbean is unnecessary
<connection-url>jdbc:hsqldb:.</connection-url>
-->
<!-- for in-process db with file store, saved when jboss stops. The
org.jboss.jdbc.HypersonicDatabase is unnecessary
<connection-url>jdbc:hsqldb:${jboss.server.data.dir}/hypersonic/localDB
</connection-url>
-->
然后,定位到文件的底端部分,用户应该可以找到Hypersonic 服务的MBean 声明。
<mbean code="org.jboss.jdbc.HypersonicDatabase" name="jboss:service=Hypersonic">
<attribute name="Port">1701</attribute>
<attribute name="Silent">true</attribute>
<attribute name="Database">default</attribute>
<attribute name="Trace">false</attribute>
<attribute name="No_system_exit">true</attribute>
</mbean>
用户必须确保,这部分内容没有被注释掉,因此JBoss 才能够正确地启动DB


7.2、 创建数据库模式

用户通过sql 目录能够找到适合HSQL 的SQL 脚本。其中,jboss-build.xml 中的数据库
任务能够同HSQL 数据库进行交互。如果还未运行JBoss,则请立即启动它吧,这样才能使
用数据库。
首先,可以使用Ant 目标db-create-table 创建所需的表。

QUOTE:
ant -f jboss-build.xml db-create-table


然后,运行db-insert 目标,以初始化所需的数据。

QUOTE:
ant -f jboss-build.xml db-insert


最后,如果上述过程很顺利,则使用Ant 目标db-list 能够浏览到部分数据。其中,db-list
目标列举出了某特定账号的交易信息。

QUOTE:
ant -f jboss-build.xml db-list


7.3 HSQL 数据库管理工具

另外,如果用户启动JMX 控制台Web 应用,能够在域名jboss 下看到service=Hypersonic
链接。

通过单击上述链接,用户能够使用到Hypersonic MBean 服务提供的HSQL 数据库管理
功能。具体步骤如下:将屏幕滚动到页面底端,然后单击用于startDatabaseManager()操作的
invoke 按钮,进而启动了HSQL 管理器,即用户能够直接操作数据库的、基于图形用户界
面的Java 应用。

8、部署应用

部署基于JBoss 的应用很简单,用户只需要将EAR 文件拷贝到deploy 目录即可。通过
Ant 目标deploy 能够完成应用的部署工作。

QUOTE:
ant -f jboss-build.xml deploy


如下给出了示例(作了部分裁减,而且同用户所看到的实际输出会有所差别)。

QUOTE:
18:07:55,024 INFO [EjbModule] Deploying CustomerBean
18:07:55,103 INFO [EjbModule] Deploying AccountBean
18:07:55,142 INFO [EjbModule] Deploying TxBean
18:07:55,403 INFO [EjbModule] Deploying NextIdBean
18:07:55,439 INFO [EjbModule] Deploying AccountControllerBean
18:07:55,478 INFO [EjbModule] Deploying CustomerControllerBean
18:07:55,503 INFO [EjbModule] Deploying TxControllerBean
18:07:56,950 INFO [EJBDeployer] Deployed: file:/private/tmp/jboss-4.0.2/server/default/t
mp/deploy/tmp15097JBossDukesBank.ear-contents/bank-ejb.jar
18:07:57,267 INFO [TomcatDeployer] deploy, ctxPath=/bank, warUrl=file:/private/tmp/jboss
-4.0.2/server/default/tmp/deploy/tmp15097JBossDukesBank.ear-contents/web-client.war/
18:08:00,784 INFO [EARDeployer] Started J2EE application: file:/private/tmp/jboss-4.0.2/
server/default/deploy/JBossDukesBank.ear


如果存在错误或异常信息,则请注意错误信息,并确认导致错误的原因(比如,部署某
特定EJB 时,或Web 应用等等)。请检查EAR、WAR、EJB jar 文件的完整性,比如所有所
需的组件(类、部署描述符等等)是否都存在。
如果应用已经部署,则用户可以放心地再次部署它。如果需要卸载应用,则只需要将相
应的存档从deploy 目录删除即可。当然,JBoss 服务器始终不需要重启。如果一切都正常,
并无异常抛出,则通过Web 浏览器打开如下URL:
http://localhost:8080/bank/main

[attachment=408]


hasek2005-12-07 14:42
忘了告诉大家了
用户ID:200
密码:j2ee

洋洋2005-12-27 16:10
谢谢。总版主辛苦了。
wish2006-01-08 00:47
支持原创
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
学习jbpm开始一章中剩余部分
JBOSS维护经验
在JBoss下开发、部署EJB
将JBoss EJB应用程序迁移到WebLogic上
Jboss7 部署EJB3 简明教程
jboss5发布目录设置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服