Files
------CMMI-/05最佳实践/3开发工具/Java/JBoss/JBoss.txt
T
strepsiades 71e5943b06 first commit
2026-03-16 14:09:48 +08:00

168 lines
7.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
JBossJBoss
JBoss
JBoss是一套开源的企业级Java中间件软件,用于实现基于SOA架构的web应用和服务。
Jboss包含一组可独立运行的软件。
2006年4月10日,Redhat宣布斥资3.5亿美元收购JBoss
JBoss是一个免费的开源应用服务器,全面支持J2EE,包括JSPServletsEJB。为了让J2EE开发人员快速熟悉JBoss,本文将带您开始JBoss之旅,包括下载,安装,部署应用程序和配置数据源。
工具准备
为了运行JBoss,你需要准备以下工具:
u JDK 1.3.1或更高。
为了在JBoss上开发应用程序,你可能还需要以下开发工具:
u Ant 1.5,一个Java Build Tool。
u XDoclet 1.1.2,一个用于生成代码的Javadoc插件。
u JBoss Project Template
下载
可以从JBoss.org/">www.JBoss.org获得JBossJBoss现在有两种供你选择:标准版,包括用于Web页和Servlets的Jetty,和另一个用Tomcat替换Jetty的版本。
在写作本文时,JBoss 3.2.1是最新的稳定版本。
安装
解压压缩包到一个指定的目录,例如JBoss-3.2.1,解压完毕后,应该生成如下目录:
u bin:命令和脚本
u client:客户端jars
u docsJBoss的文档
u lib:服务器端jars
u server:服务器配置文件
第二步,建立以下环境变量:
u JBoss_HOME:设置为JBoss的安装目录。
u JAVA_HOME:设置为JDK的安装目录。
服务器配置
JBoss提供了3种服务器配置:
u Minimal:最小配置,仅仅包括日志,JNDI服务和URL部署扫描器,你可能会在一个不需要J2EE的应用中使用这种配置,或者以该配置为基础自定义配置。
u Default:缺省配置,包括除了RMI/IIOP和集群的所有J2EE服务。
u All:这种配置包括所有的JBoss服务。
启动
为了启动JBoss,在Windows下:
u 打开一个命令行窗口;
u 键入:cd %JBoss_HOME%in
u 键入:run [-c default|minimal|all]。
在UNIX下:
u 打开一个Shell
u 键入:cd $JBoss_HOME/bin
u 键入:./run [-c default|minimal|all]。
如果JBoss启动成功,你应该可以看到以下输出:
21:11:16,637 INFO [Server] JBoss (MX MicroKernel) [3.2.1 (build: CVSTag=JBoss_3 _2_1 date=200305041533)] Started in 26s:919ms
一旦服务器启动成功,你就可以通过在浏览器中打开http://localhost:8080/jmx-console/来验证所有的J2EE服务是否都启动了。这是JBoss的管理台,它将显示当前配置下JBoss正在运行的所有服务以及每个服务的详细内容。
JBoss也可以作为NT服务或者Unix服务来运行,可以参考“JBoss 3.0 Quick Start Guide”。
关闭
如果在Windows的命令行窗口或者当前的Unix Shell下运行JBoss,只需要简单的按下Ctrl+C即可关闭JBoss。
如果在Windows下不能看见命令行窗口:
u 打开一个新的命令行窗口;
u 键入:cd %JBoss_HOME%in
u 键入:shutdown –S或者shutdown --server=url。
如果在Unix Shell的后台运行:
u 打开一个Shell
u 键入:cd $JBoss_HOME/bin
u 键入:./shutdown –S或./shutdown --server=url。
管理
JBoss通过一个基于Web的控制台管理,你只需在浏览器中键入:http://localhost:8080/jmx-console/即可。查看或更改某一服务的配置,只需简单的点击链接。
通过控制台,你还可以使用一些服务的公开的方法,例如,关闭服务器:
u 打开控制台;
u 卷动到“JBoss.system”选项;
u 点击链接“type=server”
u 卷动到“void shutdown()”选项;
u 点击“Invoke”按钮。
部署应用程序
在JBoss中部署应用程序是再简单不过的了。简单的复制你的应用程序打包文件:.jar,.war或者.ear到服务器缺省的部署目录下,如果JBoss正在运行,将检测到文件,自动解压,然后装载应用程序。
以下是将一个应用部署到一个缺省的服务器配置的例子,在Windows下:
u 复制rotmachine.ear到%JBoss_HOME%serverdefaultdeploy
在Unix下:
u 复制rotmachine.ear到$JBoss_HOME/server/default/deploy
在部署过程中,JBoss日志将在控制台窗口输出信息并写入日志,日志文件位于服务器的配置目录。如果部署成功,你应该可以看到以下信息:
22:21:44,730 INFO [MainDeployer] Deployed package: file:/C:/JBoss-3.2.1/server/default/deploy/rotmachine.ear
此外,如果你打开JBoss的管理台,可以在“JBoss.j2ee”类别下列出你的应用。
取消已部署的应用
取消已部署的应用程序比部署应用程序更简单。只要简单的从部署目录中删除相应的应用程序文件,JBoss就会检测到文件已被删除,然后取消已部署的应用。
取消部署一个应用时,JBoss日志将在控制台窗口显示信息,并记录到服务器日志。如果取消部署成功,你应该可以看到以下信息:
22:59:41,500 INFO [MainDeployer] Undeployed file:/C:/JBoss-3.2.1/server/default/deploy/rotmachine.ear
数据源
如果你的应用程序将连接到数据库,你可能需要为数据库配置一个数据源。以下是如何配置一个简单的数据源:
如果你使用的数据库JDBC驱动没有在服务器的lib目录中,复制驱动程序到此目录,然后重新启动JBoss。
为你的数据库创建一个数据源描述文件,例如,oracle-ds.xml
部署数据源描述文件,方法和部署应用程序相同。
以下是oracle数据源的一个描述文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>OracleDS</jndi-name>
<connection-url>jdbc:oracle:thin:@serverip:1521:DB</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>dev</user-name>
<password>secret</password>
</local-tx-datasource>
</datasources>
其它的数据源描述文件的示例可以在JBoss_HOME/docs/examples/jca中找到。
EJB
为JBoss创建EJB和其他任何J2EE应用服务器一样,但需要一个额外的JBoss使用的EJB部署描述文件JBoss.xml,以下是一个示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE JBoss PUBLIC "-//JBoss//DTD JBoss//EN"
"http://www.JBoss.org/j2ee/dtd/JBoss.dtd">
<JBoss>
<enterprise-beans>
<session>
<ejb-name>Processor</ejb-name>
<jndi-name>ejb/Processor</jndi-name>
</session>
<entity>
<ejb-name>Data</ejb-name>
<jndi-name>ejb/Data</jndi-name>
</entity>
</enterprise-beans>
</JBoss>
请注意,和其它J2EE服务器不同,JBoss不需要生成存根文件(stubs and skeletons),它能动态调用EJB。
客户端
正如上文所说,JBoss不需要客户端存根(stubs),你只需向客户端提供以下接口:
u EJB Home接口和Remote接口;
u 任何在客户端和EJB间传递的对象;
u 一份JBoss_HOME/client/JBossall-client.jar的文件拷贝。
以下是连接已部署在JBoss中的EJB的示例:
// 创建环境:
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
env.put("java.naming.factory.url.pkgs",
"org.JBoss.naming:org.jnp.interfaces");
env.put("java.naming.provider.url", "localhost");
// 创建名字上下文:
InitialContext context = new InitialContext(env);
// 查找Home接口:
CipherHome home = (CipherHome)context.lookup("ejb/org/rotmachine/Cipher");
// 获得Remote接口:
Cipher cipher = home.create();
一个示例应用
为了帮助你更好的了解JBoss,本文包含了一个名为RotMachine的应用程序,请参见资源链接。
RotMachine是一个简单的J2EE应用,包括一个EJBStateless Session Bean),一个Web客户端和一个命令行(Command-line)客户端。它使用JBoss的项目模板(Project Template),你可能需要上文提到的一些额外的开发工具。
如果要编译RotMachine的源文件,解压文件到一个指定的目录中,在Windows下:
u 打开一个命令提示符窗口;
u 键入:cd (解压目录)
u 键入:ant deploy-server。
在Unix下:
u 打开一个Shell
u 键入:cd (解压目录)
u 键入:ant deploy-server。
要在命令行客户端测试RotMachine,在Windows下:
u 打开一个命令提示符窗口;
u 键入:cd buildin
u 键入:run-client。
在Unix下:
u 打开一个Shell
u 键入:cd build/bin
u 键入:./run-client.sh。
要在Web客户端测试RotMachine,请打开浏览器,输入:“http://localhost:8080/rotmachine/index.jsp”,在表单中输入一些文本,点击“Go!”按钮。