📄 h2.html
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="description" content="Java,JDBC,EJB,Open Source,jdk,rmi">
<meta name="Keywords"
content="Java, servlets, Java servlet, Javascript, ActiveX, VRML,
applet, applets, directory, news, jdbc, applications,
Java applications, Java developer, Java development, developer,
classes, Jars.com, Jars, intranet, Java applet, Javabeans,
Java products, JDK, Java development kit, java development environment, JIT,
JavaPlan, enterprise tools, JVM, Java Virtual Machine, Java resources,
SUN, CGI, Perl, database, network, html,
xml, dhtml, rating, ratings, review, jars, cgi, programming,
software review, software rating">
<title>csdn_JBOSS开放源代码的EJB服务器</title>
<style>
.news { BACKGROUND: #007cd3; font-family: "宋体"; font-size: 9pt }
.t { font-family: "宋体"; font-size: 9pt }
.t1 { color:#007cd3; font-family: "宋体"; font-size: 9pt }
.white { font-family: "宋体"; font-size: 9pt;color:#FFFFFF }
.red { font-family: "宋体"; font-size: 9pt;color:#FF0000 }
A:visited {color:#0000FF}
A:hover {color: #ff6666; text-decoration: none}
.text {font-size: 12px; line-height: 160%; font-family: "宋体"}
.text1 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text1:visited {color:#000000}
.text1:hover {color: #000000}
.text2 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text2:visited {color:#000000}
.text2:hover {color: #000000}
.text3 {font-size: 12px; line-height: 100%; font-family: "宋体"; text-decoration: none}
.large {font-size: 14.8px; line-height: 130%}
</style>
</head>
<body
<center>
<tr>
<td WIDTH="100%" VALIGN="TOP">
<tr>
<td WIDTH="100%" CLASS="white"></td>
</tr>
<div align=center>
<tr>
<td WIDTH="50%" bordercolor="#FFFFFF" CLASS="t1" bgcolor="#F0F0F0" align="center" nowrap>JBOSS开放源代码的EJB服务器 </td>
<p> <td WIDTH="50%" bordercolor="#FFFFFF" CLASS="t1" bgcolor="#F0F0F0" align="center" nowrap>刘景文 《软件世界》</td></p>
</tr></div>
<tr> <td WIDTH="100%" bordercolor="#FFFFFF" CLASS="t" bgcolor="#F0F0F0" colspan="2">
<br>
J2EE在Sun和IBM等公司的努力下逐渐成为工业标准,现在大约有几十家J2EE应用服务器提供商。最流行的J2EE服务器报价为50000美元(中等规模的安装)。中小企业和普通开发者是无力承担的。<br>
J2EE主要包含以下规范:<br>
* 中间件(middleware) 包括Enterprise Java Bean (EJB)和Java Message Service (JMS)等分布式企业计算的构件(Component)。<br>
* 名称和目录 JNDI(Java Naming and Directory Interface)API用于查找服务和构件。<br>
* 表示(Presentation) 服务器端小程序(Servlet)和Java 服务器页(JSP)支持Web/HTTP浏览器访问<br>
* 事务(Transaction) Java Transaction API(JTA)/Java Transaction Service(JTS)。<br>
<br>
关于J2EE的详细资料请参阅其主页http://java.sun.com/j2ee/。<br>
<br>
EJB作为J2EE架构中最重要的构件,是服务器端分布式计算模型的核心。EJB服务器是EJB的容器,控制EJB的运行,并且为它提供重要的系统级的服务—事务处理、安全、远端访问、数据库访问等。由此带来的是应用开发的简化,按照EJB的规范开发EJB,运行时由EJB容器负责事务处理,安全,生命周期。典型的J2EE多层应用的结构见图1,中间层就是J2EE应用服务器,包含Web服务器和EJB服务器。Web服务器包含Web容器和Web构件(Servlet和JSP),EJB服务器包含EJB容器和EJB部件。客户程序包含各种Web浏览器和应用程序,EIS为传统的数据库和企业应用(ERP等)。客户程序与中间层通过HTTP,HTTPS,RMI,CORBA等协议进行数据交换,中间层与EIS通过JDBC等方法实现通讯。<br>
EJB服务器是J2EE应用服务器的一个重要部分。Sun的J2EE SDK,ibm的Websphere,BEA的Weblogic等J2EE实现均内含EJB服务器。也有一些J2EE规范是独立实现的。像本系列第一篇所提及的Tomcat就是Web服务器的实现,本文介绍的Jboss是一个独立的EJB服务器的实现(Jboss的目标是一个源代码开放的J2EE环境,然而现在它只是一个完整的EJB服务器,与其他的Web服务器Tomcat、Jetty的整合也是一个方向)。<br>
EJB(规范1.0-2.0)可以分成两类,会话Bean (Session Bean) 和实体Bean(Entity Bean)。<br>
一般来讲会话Bean是用于商业逻辑计算,实体Bean是用于封装数据库访问。必须根据不同的情况选择这两类EJB。<br>
JBOSS介绍<br>
JBOSS是开放源代码的,遵从J2EE规范的,100%纯java的EJB服务器。Jboss的开发团队有500多人,核心开发人员有50多个,均为J2EE专家。Jboss的用户数以万计,遍及世界。JBOSS采用Java Manage eXtension API 实现软件模块的集成与管理(见图2)。<br>
JBOSS的详细资料请参阅其主页http://www.jboss.org。<br>
<br>
JBOSS Suite由以下几个模块(或者API)组成:<br>
Jboss/server Jboss服务器,核心是一个EJB容器,全面支持EJB1.1规范。<br>
Jboss/SpyderMQ JMS的 纯java实现,支持JMS 1.0.2规范。<br>
Jboss/Jaws Just Another Web Storage的缩写,Jaws API实现java对象和关系数据库的映射,Jboss用它实现EJB的连续化(Persistence)。Jaws还增加了Minerva JDBC 连接池(Connection Pooling)模块,以提高访问数据库的效率。 <br>
Jboss/Zola Zola提供jboss例程序,来说明J2EE应用的开发和在jboss中的实施(Deploy)。Zola中包含一个例子Zol WebStore,可以作为Web商店,基于JSP、Servlet、EJB,实现在线购物,支持Web和WAP访问。<br>
Jboss/Zoap 支持Simple Object Access Protocol (SOAP) 访问,SOAP是由Microsoft和IBM提出的一个支持世界范围分布式的松耦合的信息交换协议。<br>
SOAP规范的主页位于http://www.w3.org/TR/2000/NOTE-SOAP-20000508/。<br>
Jboss/Castor 与Castor的整合,提供Java Data Object(JDO)支持,实现新的EJB连续化方法。<br>
Jboss/Tomcat 与Tomcat的整合,提供完整的J2EE环境。<br>
Tomcat的主页位于http://jakarta.apache.org/。<br>
Jboss/Jetty 与Jetty的整合,提供完整的J2EE环境。<br>
Jetty的主页位于http://jetty.mortbay.com/。<br>
Jboss/Test Jboss测试环境。<br>
JBOSS使用<br>
Jboss的运行需要JDK 1.2.2 或者1.3。Sun的JDK 1.3位于http://java.sun.com/j2se。安装和使用纯Java的Jboss非常简单,从jboss的主页下载二进制的版本,<br>
jBoss-2.0_FINAL.zip Windows 32<br>
jBoss-2.0_FINAL.tar.gz Unix/Linux<br>
直接解压缩后,呈现下述目录结构:<br>
* bin ——包含可自举的JAR文件run.jar和操作系统相关的启动脚本。run.bat为Windows脚本,run.sh 为UNIX/Linux脚本。<br>
* conf ——包含Jboss自身和其他模块需要的配置文件。 <br>
*db——数据库存储所用的目录或配置文件db.properties。<br>
* deploy ——放置EJB-JAR 文件到本目录,实施EJB应用。<br>
* docs——包含Jboss/Server的文档。<br>
* docs/api——包含Jboss/Server的Javadoc文档。<br>
* lib——包含自举JAR文件所需的JMX文件。 <br>
* lib/ext——Jboss/Server运行所需要的其他(JAR)文件 。无需配置,Server启动脚本会自动把它们添加到CLASSPATH中。<br>
* log——存储日志文件或配置文件log.properties。<br>
* tmp——存储临时文件或配置文件tmp.properties。<br>
下面以Jboss/Test为基础,介绍EJB应用的实施过程。<br>
关于EJB的书籍,你可以参考Ed Roman的Master Enterprise JavaBeans - and the Java 2 Platform, Enterprise Edition(Willy, 1999,电子版可以在网站http://theserverside.com下载), 以及Richard Monson-Haefel的Enterprise JavaBeans, Second edition (Oreilly, 2000)。<br>
下载Jboss/Test的源代码jbosstest-cvs-sources.zip,解压缩到目录${JBTPATH}中。设置JAVA_HOME指向JDK的安装目录,并且添加${JAVA_HOME}/bin到系统PATH变量中。进入目录${JBTPATH}/src/build,运行相应的脚本编译EJB应用。<br>
【WIN32】<br>
set JBTPATH=c:\jbosstest<br>
set JAVA_HOME=c:\jdk1.3<br>
set PATH=%JAVA_HOME%\bin;%PATH%<br>
cd %JBTPATH%\src\build<br>
build<br>
【UNIX/LINUX BASH】<br>
JBTPATH=/usr/local/jbosstest<br>
JAVA_HOME=/usr/local/jdk1.3<br>
PATH=$JAVA_HOME/bin:$PATH<br>
cd $JBTPATH/src/build<br>
build.sh<br>
<br>
如果成功的话,就会在${JBTPATH}中创建一个dist目录,其结构如下:<br>
bin:包含EJB客户程序的脚本。<br>
deploy:包含编译生成的EJB-JAR,可以在Jboss中实施。<br>
lib:包含客户程序运行所需的文件。<br>
复制deploy目录的EJB-JAR到${JBOSS_HOME}/deploy目录就完成了实施过程。<br>
确认JAVA_HOME指向JDK的安装路径,启动jboss服务器,然后运行${JBTPATH}/dist/bin中相应的测试脚本,就可以观察到客户程序的输出。<br>
Jboss与Web 服务器(Tomcat和Jetty)<br>
Tomcat与Jetty均为支持HTML/JSP/Servlet的Web服务器,与Jboss集成为完整的产品级的J2EE服务器。用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。Jboss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。<br>
<br>
小结 <br>
Jboss作为 “第三代”应用服务器,对于J2EE开发人员和用户而言是难得的教材。与Linux等开放源代码的系统相结合,在服务器端企业级应用方面更是一股不可低估的力量。</span>
</td>
</tr>
</td>
</tr>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -