分享
 
 
 

[翻译教程]使用JBOSS和ECLIPSE构建J2EE应用程序教程--第一章

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

使用JBOSS和ECLIPSE构建J2EE应用程序教程

翻译:raxy

第一章

配置ECLIPSE并使用JBOSS和LOMBOZ

安装Eclipse.

首先我们要安装Eclipse作为集成开发环境(IDE)和JBOSS作为我们的应用程序服务器.

去这个页面: http://www.eclipse.org/downloads/index.php下载Eclipse编辑器的二进制文件.你可以根据你的平台下载适合的二进制文件.本教程是在Linux (Red Hat 8.0)下进行开发的.

示例: eclipse-SDK-2.1-linux-gtk.zip, eclipse-SDK-2.1-win32.zip

注意 : Eclipse并不包含JAVA的运行环境(JRE).你需要下载一个至少是1.3的JAVA运行时Java开发包(JDK)安装在你机子上以使Eclipse可以运行.

解压缩该文件到你的home目录下.

[vishal@localhost eclipse]$ unzip eclipse-SDK-2.1-linux-gtk.zip

Archive: eclipse-SDK-2.1-linux-gtk.zip

Archive: eclipse-SDK-2.1-linux-gtk.zip

inflating: eclipse/plugins/org.eclipse.core.boot_2.1.0/boot.jar

inflating: eclipse/plugins/org.eclipse.core.boot_2.1.0/splash.bmp

inflating: eclipse/plugins/org.eclipse.core.boot_2.1.0/boot.xml

inflating: eclipse/plugins/org.eclipse.core.boot_2.1.0

/plugin.properties

-----------------------------------------------------------------------------

----------------------------------------------------------------------------

-------------------------------------------------------------------------

inflating: eclipse/install.ini

inflating: eclipse/startup.jar

inflating: eclipse/readme/readme_eclipse.html

?

一旦你解压了这个文件你会home目录中找到一个名为'eclipse'的目录.

进入该目录并运行'eclipse'.

?

[vishal@localhost eclipse]$ cd eclipse

[vishal@localhost eclipse]$ ls

cpl-v10.html features install.ini plugins startup.jar

eclipse icon.xpm notice.html readme workspace

[vishal@localhost eclipse]$ ./eclipse

它将会在你的工作站上启动Eclipse IDE.让我们来更加熟悉这个环境吧.

安装JBOSS.

既然Eclipse已经安装好了并可以在你的工作站上运行,那么我们开始安装JBOSS.

你可以下载直接就可以运行的JBOSS.因为JBOSS内置了一个简单的数据库(Hypersonic)和网络服务器(JBossWEB或Tomcat)你可以不作任何设置直接使用. 你可以在SourceForge 中的JBOSS (http://sourceforge.net/projects/jboss)项目的页面下载,在那里你可以找到最新的版本,或是到JBOSS的主页下载 在那里你可以找到很多关于JBoss的有用信息,比如说官方的信息,免费论坛以及 项目的信息等等,同样也可以从 http://www.jboss.org/downloads.jsp下载.在本教程中我们使用的是集成了'Jetty' 作为JBOSS HTTP网络服务器的JBOSS-3.2.1.

范例 : jboss-3.2.1.zip (包括JBossWeb HTTP服务器和JSP/Servlet引擎, EJB, CMP2.0, JCA, IIOP, Clustering, JTS, JMX.)

注意 : JBOSS不包含JAVA运行环境(JRE).

首先使用用户'root'登录然后解压这个文件到适当的位置,那里必须有足够的空间.我把它解压到了/opt/jboss/目录.

它会在/opt/jboss/下创建一个名为 jboss-3.2.1的目录.

在运行JBOSS之前, 为了检查JBOSS的安装是否正确,确认你是否设置了以下变量.

JBOSS_HOME: /opt/jboss/jboss-3.2.1

JAVA_HOME: /usr/java/j2sdk1.4.1_02

CLASSPATH: /usr/java/j2sdk1.4.1_02/lib/tools.jar

?

进入jboss-3.2.1目录,你会找到所有这些目录.

[root@localhost jboss-3.2.1]# ls

bin client docs lib server

进入bin目录,你会找到run.sh脚本文件.

在命令行下运行该文件.它会启动,你将看到下面这条信息.

15:12:59,876 INFO [Server] JBoss (MX MicroKernel) [3.2.1 (build: CVSTag=JBoss_3_2_1 date=200305041533)] Started in 59s:676ms.

注意:这就是说 JBOSS已经安装好并成功运行了.现在是在eclipse IDE中配置它的时候了.

为了验证JBOSS运行是否正确,在你的浏览器中输入下面的地址'http://localhost:8080/jmx-console/index.jsp'.

注意: 这个页面指向的是'JMX Management Console'(This page is referred as the 'JMX Management Console').

如果你可以在你的浏览器中访问它,说明你的JBOSS已经成功的在运行了.

在该页面的 'jboss'子标题下,有一个接是 'service=Hypersonic'.点击该链接;会出现'MBean View'页面.在该页面有一个叫做'startDatabaseManager'的MBean操作;找到那里然后按下 'Invoke'按钮. 将会出现嵌入式数据库Hypersonic的console,在那里你可以访问数据库模式或者执行其他的数据库管理的操作.

创建数据库模式.

在学习案例中提到的, 我们商店仓库的数据库模式由5个关系组成. 我们会在嵌入式数据库Hypersonic中装载它.

出于这个目的, 我们会用到以下的脚本文件.

a) myStoreSchema.script – 用于创建数据库模式.

b) myStoreSchema.data – 用于向表中添加数据.

c) myStoreSchemaDrop.script –用于删除教程中用到的表.

下载:

myStoreSchema.script

myStoreSchema.data

myStoreSchemaDrop.script

?

首先拷贝这3个文件到 $JBOSS_HOME/server/default/data/hypersonic/目录. 这个例子中它是 /opt/jboss/jboss-3.2.1/server/default/data/hypersonic/

现在使用上图所示的JMX-Management Console 访问HSQL Database Manager.

?

注意: 请在数据库中删除已经存在的和我们用到的表同名的表,否则当你运行这些脚本的时候自然会有错误产生.

?

在HSQL Database Manager顶部的菜单中选择File Open Script.. 选择myStoreSchema.脚本.

在点击完Open 后按下‘Execute SQL Statement’,屏幕上会成为如下图所示的样子.

在菜单中选View Refresh Tree.如果你看到有5个新表被创建了,就说明你的数据模式就弄好了,是在表中加入数据的时候了.

?

在菜单中选File Open Script.. 选择myStoreSchema.data Open.. Execute SQL Statement.

?

现在你的数据已经装载到你的数据库中了,你可以执行任意查询(这里使用的是select * from storeaccess)来验证它并可以看到象下表中一样的结果.

确定你使用了'commit'(Options-commit)在你的数据库中保存你的数据库模式.

注意:关闭Jboss服务器因为我们后面会在eclipse中运行它.

安装Lomboz.

为了在Eclipse中运行JBOSS你需要一个插件,在本教中我们使用Lomboz可以在 http://sourceforge.net/projects/lombozhttp://www.objectlearn.com/index.jsp下载到.

注意: 我们在这里使用的是lomboz.21_02.zip.

解压该文件到临时目录;你会找到一个叫plugins的目录.进入目录plugins/com.objectlearn.jdt.j2ee/servers. 这个目录中包括针对各种服务器的配置文件.在本教程中我们提供一个jboss3.2.的配置文件供下载.

注意: 如果有多个配置文件存在,插件会默认的使用eclipse/plugins/com.objectlearn.jdt.j2ee/servers/目录中的按字母排序的第一个配置文件,所以把所有配置文件的后缀名改为'.bak'.这样做是为了在我们教学避免发生错误.

现在,复制我们提供的jboss321all.server文件到servers 目录.

cd plugins/

[vishal@localhost plugins]$ ls

com.objectlearn.jdt.j2ee

[vishal@localhost com.objectlearn.jdt.j2ee]$ cd servers

[vishal@localhost servers$ ls

jboss244.server.bak jboss303Tomcat4112.server.bak jboss300all.server.bak jboss321all.server

tomcat403.server.bak weblogic70.server

jboss300.server.bak tomcat410.server x.log

?

这是'jboss321all.server'文件中用于配置的一个片段. 在本教程中我们会使用这个文件,你可以在Downloads里下载.

Downloads :

jboss321all.server

你可以在此文件中根据你的系统修改设置(例如. 端口号).

在你把该文件存到com.objectlearn.jdt.j2ee/servers目录后,移动 com.objectlearn.jdt.j2ee目录到$HOME/eclipse/plugins/目录下($HOME就是你的home目录.)

[vishal@localhost temp/plugins] mv com.objectlearn.jdt.j2ee /home/vishal/eclipse/plugins/.

现在, 我们将使用jboss321all.server文件配置Lomboz.

注意 :现在你可以删除临时目录了.

?

配置Lomboz.

现在来运行Eclipse配置Lomboz ($HOME/eclipse/eclipse ).

选择顶部菜单中的Window Open Perspective Java就象下图所示一样.

在本教程中我们想订制Java perspective:

再次选择顶部菜单中的Window Customize Perspective Other.

选中Lomboz Actions子结点.

点击OK. 现在在你顶部菜单的下方会出现象这样的一个图标.

点击该图标会在你的workbench出现一个Lomboz J2EE View 窗口.

现在, Lomboz J2EE View是可用的了.

选择Window Customize Perspective.

展开File New的子结点.选中所有以Lomboz开头的结点.

接着展开Window Show view项.选中Console, Lomboz J2EE View 以及如下图所示的其他几项.

现在点击ok. 你会发现所有这些选项都会在顶部菜单的 File New 中出现并且还会出现Lomboz菜单,或者在Package Explorer中点右键,一个菜单就会弹出.

配置JBOSS并在Eclipse中运行.

首先我们要配置Java开发的相关设置,因为Lomboz需要使用不同的目录存放源代码和字节码.

选择Window Preferences 展开Java结点 选择New Project项.

在相应的框中输入src和bin作为目录的名字,它们是默认好了的. 请不要修改这些默认的名称,因为在某些Lomboz任务中会用到它们.

同样的,确定JRE library被设置为'JRE_LIB' variable.

选择顶部菜单中的Window Preferences.

在Preferences窗口中选择Lomboz结点.确认JDK Tools.jar被设置为$JAVA_HOME/lib/tools.jar

在LOMBOZ结点下选择server definitions子结点. 在Server types中选择JBOSS 3.2.ALL作为 Server types,选择好之后,其余的选项会被自动加载我们为教程订制的设置.

选择Server Definitions下的'Classpath'标签并确认所有的路径都是正确的. 如果设置的路径有误,在Server libraries / Client libraries的子项的jar图标其面就会出现红叉.

你可以在这里添加或删除类库.在你更改了这些选项之后,点击'Apply'确认应用这些设置.

?

现在来验证你的'Classpath Variables'.

选择Window Preferences Java Classpath Variables

你应该会获得和你的开发环境正好相对应的所有这些Classpath变量.

?

测试你的设置.

为了测试你的配置是否正确,我们创建一个J2EE工程作为测试.

选择顶部菜单中的File New Lomboz J2EE Project..

输入 'Test'作为项目名并点击Next.

在这里检查一下你的设置;如果你的编译路径是'Test/src'而默认输出路径是'Test/bin'那么就没有问题.

在项目创建向导中点击Libraries标签.

由于Eclipse 2.1中的一个Bug 下面的这个库没有配置正确.

所以选中它并删除掉.

现在添加一个新的库,选择library Add Library.. 选中JRE System library 点击Next .

选择默认(Default)库,点击Finish.

新的库就被配置好了.

注意:因为eclipse 2.1存在着一个Bug,当你创建一个新的J2EE工程的时候你不得不重复这一步骤.

按Next.

选择Web Module Add.. 输入模块(Module)的名'OnlineBank' Ok.

选择Ejb 模块(Modules)标签 Add.. 输入模块(Module)的名'MyBank' Ok.

选择Targeted Server Add.. 'JBOSS 3.2.1 ALL' .

注意: 'JBOSS 3.2.1 ALL'不是文件名,而是我们在文件'jboss321all.server'中为服务器设置的名字用于配置服务器. 下面是文件的一些片段.

name="JBOSS 3.2.1 ALL"

ejbModules="true"

按下Finish.

你会在Package Explorer中的Test工程下看到所有这些目录和库.

在Test工程中 'src'用于存放开发的EJB组件的包和Servlets包源代码的目录.

'MyBank'目录是你的EJB模块,开始的时候含有7个文件如下图所示.

'OnlineBank'目录是你的Web模块,开始的时候含有7个文件如下图所示.这个模块的JSP页面会存在该目录下.

注意: 如果你对Ant (出自Jakarta项目)感兴趣,那么你该注意到两个模块都含有一个Ant的'build.xml'文件用于编译应用程序.

选择顶部目录的Window Show View Lomboz J2EE View.

在Lomboz J2EE 视图中也会出现Test工程,包括两个模块'MyBank'和 'OnlineBank'使用JBOSS 3.2.1作为他们默认的服务器.

好了,我们开始创建一个EJB,

选择File New Lomboz EJB creation wizard.

注意: 你可以通过在Package Explorer的Test工程上点击右键访问生成向导. 如前面介绍的一样选择菜单中的New Lomboz EJB creation wizard.

添加名为'au.com.tusc'的包;你也可以使用其他的名字.在名称中添加'MySession'.选择无状态会话(Stateless Session) EJB选项.

它将如下图所示一样在'au.com.tusc'包中创建文件'MySessionBean.java'.

注意: bean的名称, jndi的名称以及文件中bean的类型会自动生成.同样在生成文件名的时候你给的名字'MySession'后面也会被自动加上'Bean'.所以请留意命名的惯例,因为你只需要在向导中输入bean的名字.不要在名字当中加上Bean这个词,因为向导会自动为你添加它.

现在我们要通过向导添加一个商业方法.

在'Package Explorer'中选择 'MySessionBean.java'并展开它, 象下图一样在'MySessionBean'结点上点右键,选择 New Lomboz EJB Method wizard.

在Method signature中输入'public String learnJ2EE(String messg)', 方法的类型选择'Business Method'并且接口的类型选择'Remote Interface'.

在你的bean类中你的商业方法需要的signature将会生成.

在该方法中加入这一行 return "Me too! ";

Bean文件中的代码片段

?/**

? * @ejb.interface-method

? * tview-type="remote"

? *

? **/

???? public? String learnJ2EE? (String messg)? {

???????? return "Me too! ";

???? }

保存这个文件.? 现在我们来生成部署这个bean所需要的其余的文件 (伴随着帮助类的Home以及Remote接口, 使用Xdoclet).

首先把这个Bean加入模块中.

选择Package Explorer Test MySessionBean.java MySessionBean,在上面点右键; 一个菜单会弹出.选择弹出菜单中的Lomboz J2EE项并选择'Add EJB to module'.

选择Package Explorer Test MyBank (这是个目录), 在上面点右键; 一个菜单会弹出.?选择在弹出菜单中底部的Lomboz J2EE.?选择Generate EJB classes. 这样会生成和部署有关的接口,帮助类以及其他相关文件; 也就是部署描述器(deployment descriptors).

这样会生成一个名为ejbsrc的目录,它下面有一个名为au.com.tusc的包,并且在那下面会生成伴随着必要帮助类的远程和本地接口.

注意:在使用本教程的过程中你不用编辑任何在'ejbsrc'目录下由Xdoclet生成的文件.因为每当你使用Generate EJB Classes的时候,它会生成上面提过到的必要的接口和帮助类. 在解析了由Lomboz bean创建向导创建的bean类之后,这些文件会由Xdoclet生成. Xdoclet读取(looks at)在bean类中声明的各种标签和方法,然后生成相应的文件. 因此, 你只要添加商业方法并在bean类中实现它们,其余的就交给Xdoclet办了.因此在开发过程中, 你不必 (也不应该!) 编辑任何生成好的文件.在阅读本教程的过程中这点会变得越来越清楚.

在MyBank META-INF目录下现在有15个文件,其中包括ejb-jar.xml和 jboss.xml以及ejb-generate.xml.前文提到过最开始这里只有6 个文件.其他的文件是部署bean时需要的.

现在在没有任何关于部署的更多信息的情况下我们来部署这个bean.

在你工作区(workspace)的Lomboz J2EE视图中, 展开Test 展开 MyBank.

把au.com.tusc.MySessionBean 添加到你的MyBank EJB模块中.

在JBOSS 3.2.1 ALL 图标上点右键如下图所示.

一个菜单会弹出;选择Debug Server选项.它会在启动带有调试模式的服务器并在启动成功之后在工作区(workspace)的console中显示入下所示的信息.

选择Lombo J2EE View expand Test 选择MyBank 并在上面点右键; 一个菜单会弹出; 选择Deploy项.

一旦这个bean被部署了, 一条消息便会在你的'Console'中等待确认,如下图所示.

现在我们来创建一个客户端来访问部署在JBOSS(应用程序服务器)上的bean.

Go to Package Explorer Test src, 在那上面点右键,会弹出一个菜单选择EJB Test client.

输入包的名字'test' 和客户端的名字 'Client'.

选择EjbHome作为'MySessionHome' 以及Ejb Interface作为 'MySession' Finish如下图所示.

现在客户端已经生成了,是调用部署好的bean的商业方法的时候了.

我们需要一些代码来调用bean的方法.

在Client.java中添加下面的'testBean()'方法.

String request = "I'm tired of 'Hello, world' examples..";

System.out.println("Request from client : " + request);

System.out.println("Message from server : " + myBean.learnJ2EE(request) );

Client.java的代码片段.

public void testBean() {

try {

au.com.tusc.MySession myBean = getHome().create();

//--------------------------------------

//This is the place you make your calls.

//System.out.println(myBean.callYourMethod());

String request = "I'm tired of 'Hello, world' examples..";

System.out.println("Request from client : " + request);

System.out.println("Message from server : " + myBean.learnJ2EE(request) );

} catch (RemoteException e) {

e.printStackTrace();

} catch (CreateException e) {

e.printStackTrace();

} catch (NamingException e) {

e.printStackTrace();

}

}

在Package Explorer下面选择Client结点. 象下图一样在顶部的菜单中点击这个图标.

在该图标中选择 Run as Java Application.

你的客户端会发出一个请求,它的结果会在你的工作区的console中显示出来, 如下所示.

注意:忽略这些和org.apache.log4j.Property有关的例外因为它需要在客户端路径的'log4j.properties'.我们会在以后提到这个问题,因为它并不影响这个bean的功能.

?

你已经成功的创建了一个bean并对它执行了一个操作. 现在,在我们开始实现这个学习案例之前,我们将在下一章将简要的概括一下J2EE的概念.

?

待续,将会在我的Blog:raxy.blogbus.com中同步登出,

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有