开发基于JBoss的J2EE应用
作者:罗时飞
(E_mail: j2eebeans@yahoo.com.cn)
(版权个人所有,引用指明出处,不要用于商业目的,写于2003年08月19日)
关键词:JBoss 3.2.1 J2EE JNDI Database
JBoss,作为J2EE应用服务器,以其EJB容器卓越的性能、技术的潮流性、开发部署J2EE应用的方便性赢得了很多J2EE开发者的信赖。其中,免安装、基于JMX构架、热部署(Hot Deploy)、快速开发EJB应用等几项特征与其他商用服务器相比,显得有些得意忘形的样子。尽管其本身没有重大的缺陷,但毕竟是Open Source的开发模式,文档很少,因此要很好的掌握、精通开发基于JBoss的应用还是显得有些力不从心。
本文结合自己的开发经验,给出在JBoss 3.2.1下开发J2EE一些相关的注意事项和规则。其中,读者一定要知道JBoss 3.2.1作为JBoss的过渡产品(与JBoss 3.0.x、JBoss 4.x相比),自然有些东西和JBoss 3.0.x、JBoss 4.x有很大差别。但是,一般情况下,本文介绍的内容,大体上都适合JBoss各个版本。
下载完JBoss 3.2.1后,解压到一个没有空格的目录路径下面就可以运行JBoss,所以很方便,但前提是目标机器安装了Java 2 Standard Edition。一切就绪后,开始我们的旅程。
(假设JBoss 3.2.1安装在:C:\jboss-3.2.1_tomcat-4.1.24,本使用default配置)
一, 相关配置文件的设置
为开发J2EE应用,操作数据库成了必不可少的内容;调节日志输出的详细程度成了调试J2EE应用的关键;EJB应用的调优过程是J2EE应用的核心。等等,这些内容都是我们需要知道的。
(1)数据源的配置:
在JBoss 3.2.1中,配置数据源的步骤很简单,JBoss 3.2.1本身带了主流数据库的配置实例,于目录下:C:\jboss-3.2.1_tomcat-4.1.24\docs\examples\jca。具体使用那个配置文件取决于目标用户的数据库。如果是SQL Server 2000,则需要使用mssql-ds.xml文件(支持本地事务)或者mssql-xa-ds.xml文件(支持全局事务);如果是Oracle 9i数据库,则需要使用oracle-ds.xml文件或者oracle-xa-ds.xml文件。等等。这里以SQL Server 2000为例。
首先将mssql-ds.xml文件拷贝到目录:C:\jboss-3.2.1_tomcat-4.1.24\server\default\deploy下。然后打开文件,并作如下修改:
xml 代码
- <datasources>
- <local-tx-datasource>
- <jndi-name>VSSDB</jndi-name>
- <connection-url>jdbc:microsoft:sqlserver://125.16.45.158:1433;DatabaseName=DDD
- </connection-url>
- <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
- <user-name>sa</user-name>
- <password>sa</password>
- <min-pool-size>50</min-pool-size>
- <max-pool-size>200</max-pool-size>
- </local-tx-datasource>
- </datasources>
如果目标J2EE应用只需要本地事务,则上述过程已经完成了Datasource的配置,同时这个配置将用于JDBC以及EJB通过JNDI使用。如果要实现EJB使用Datasource,则还需要修改位于目录:C:\jboss-3.2.1_tomcat-4.1.24\server\default\conf下的standardjbosscmp-jdbc.xml文件。比如,
xml 代码
- <jbosscmp-jdbc>
-
- <defaults>
- <datasource>java:/VSSDB1</datasource>
- <datasource-mapping>MS SQLSERVER2000</datasource-mapping>
-
- <create-table>true</create-table>
- <remove-table>false</remove-table>
- <read-only>false</read-only>
- <time-out>300</time-out>
- <pk-constraint>true</pk-constraint>
- <fk-constraint>false</fk-constraint>
- ........
。。。。。。。。
其中,<datasource>java:/VSSDB</datasource>中的VSSDB就是mssql-ds.xml配置的数据源;而“java:/”前缀表明该命名空间只是对JBoss本身可见,即运行于JBoss外的应用是不能够使用这里定义的数据源,这一点希望读者注意。
其次,<datasource-mapping>MS SQLSERVER2000</datasource-mapping>中的MS SQLSERVER2000可以在该文件的其他地方找到。(如果是其他数据库,情况都是类似的,希望读者加以思考!)
(2)日志的输出详细程度配置:
由于JBoss 3.2.1开发采用了Log4j管理其日志信息(严格地讲,它扩展了Log4j),因此了解Log4j的机理,有助于理解JBoss 3.2.1管理日志的方式。
JBoss 3.2.1采用JMX架构的同时,且以.xml文件类型为配置文件,因此可以找到位于目录:C:\jboss-3.2.1_tomcat-4.1.24\server\default\conf下的log4j.xml文件。比如,其中一段配置示例如下:
xml 代码
- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
- <param name="Target" value="System.out"/>
- <param name="Threshold" value="INFO"/>
-
- <layout class="org.apache.log4j.PatternLayout">
-
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
- </layout>
- </appender>
比如,为了调节JBoss 3.2.1控制台日志输出的详细程度(调整为DEBUG级别),我们需要修改value=”INFO”,将INFO改为DEBUG。
如果目标读者在开发Entity Beans,可以调节位于与log4j.xml文件同一目录下的standardjboss.xml文件(该文件主要是提供修改EJB相关的调试、运行、调优、部署参数)。如果目标读者Entity Beans采用的<container-name>为Standard CMP 2.x EntityBean,则将其中的<call-logging>属性的取值改为true。
xml 代码
- <container-configuration>
- <container-name>Standard CMP 2.x EntityBean</container-name>
- <call-logging>false</call-logging>
- <invoker-proxy-binding-name>entity-rmi-invoker</invoker-proxy-binding-name>
- <sync-on-commit-only>false</sync-on-commit-only>
- .......
。。。。。。。。。
完成上述两步后,读者在调试Entity Beans时通过控制台,可以看到Entity Beans发出的JDBC调用细节。
(3)Tomcat容器相关参数的配置:
如果目标读者使用JBoss 3.2.1与Tomcat 4.1.24的集成版本,则可以通过调节分别位于目录:C:\jboss-3.2.1_tomcat-4.1.24\server\default\deploy\jbossweb-tomcat.sar下的web.xml和目录:C:\jboss-3.2.1_tomcat-4.1.24\server\default\deploy\jbossweb-tomcat.sar\META-INF下的jboss-service.xml文件来达到目标读者特定需求。
比如,如果想将HTTP服务端口改为80,则可以修改jboss-service.xml文件;如果想使目标J2EE应用处理更多的文件类型,可以修改web.xml文件。
(4)相关类库的放置:
如果您的应用涉及到第三方类库,比如JDBC Driver,则可以将这些JDBC Driver存放到目录下:C:\jboss-3.2.1_tomcat-4.1.24\server\default\lib。注意,不是目录:C:\jboss-3.2.1_tomcat-4.1.24\lib下。
如果是与目标J2EE应用相关,则可以存放到目标.war(或者.ear)里面,或者xxx.war目录中的WEB-INFO\lib下。无论那种情形,都需要遵循J2EE规范。
当然,JBoss 3.2.1的配置文件有很多,比如提供邮件服务的mail-service.xml文件,等等。在这里只是给读者一些信息,如果您有相关问题,都可以试着本文介绍的一些内容解决您的问题。谢谢。
二,开发EJB应用
如果开发EJB应用,建议采用JBoss作为开发服务器,因为开发、调试、部署速度快。如果采用其他商用服务器,由于实现机理的不同,其编译的速度很慢。
如果采用Entity Beans技术,则您需要知道这么几点。第一,您目标系统的数据源有多少个操作入口,即是否存在Entity Beans之外的方式来操作数据库。如果有,则需要调节相应<container-name>的<commit-option>提交策略以及<locking-policy>策略。
比如,JBoss 3.2.1采用的<commit-option>方式有4种:A、B、C、D。当然,如果除了Entity Beans访问数据库外,别无它出,采用A是很理智的。如果有,则需要取决于具体的情况使用<commit-option>方式。同时,<commit-option>方式的选择与<locking-policy>策略有关系。
能够采用<read-only>的Entity Beans或Entity Beans Methods,则尽量采用,这样会减少或消除死锁发生的可能性。
尽量采用1:n的关系来操作n方的数据表结构,这样能够提高EJB Container的效率。
待续。。。。。。
分享到:
相关推荐
### 开发基于JBoss的J2EE应用 #### 一、引言 JBoss作为一款高性能的开源J2EE应用服务器,在业界获得了广泛的认可。它不仅提供了强大的EJB容器功能,还具有诸多特色优势,例如免安装特性、基于JMX架构、支持热部署...
J2EE发展趋势 案例研究 J2EE Tutorial Java Pet Store Java Adventure Builder 钟情JBoss 4.x 全书内容安排 1 安装JBoss 4.x 2 安装JBoss-IDE 1.4.0 3 基于JBoss 4.x的JSF应用开发 ...
本主题将深入探讨“基于JBOSS的J2EE开发”,旨在帮助开发者理解和掌握在JBOSS上开发多层应用模型的核心技术和最佳实践。 J2EE是一种标准框架,它定义了构建分布式、多层的企业级应用程序的组件和服务。J2EE的核心...
《基于JBOSS的J2EE开发》是一本专注于在JBOSS应用服务器上进行J2EE应用程序开发的专业书籍。J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于构建企业级分布式应用的平台,它包含了多种服务...
本教程将详细介绍如何利用Eclipse集成开发环境(IDE)与JBoss应用服务器来创建和部署J2EE应用程序。 首先,让我们了解Eclipse。Eclipse是一款开源的IDE,它支持多种编程语言,包括Java。Eclipse拥有丰富的插件生态...
《基于JBoss 4.x的J2EE 1.4应用开发指南》是一本专为开发者设计的详尽教程,旨在帮助读者掌握如何在JBoss 4.x应用服务器上开发和部署J2EE 1.4标准的应用程序。这本书深入探讨了JBoss 4.x与J2EE 1.4规范的集成,以及...
本书《基于JBOSS的J2EE开发》由罗时飞编写,是一本被广泛认可的经典著作,深入浅出地介绍了如何使用JBOSS作为应用服务器来开发J2EE应用。 #### 二、J2EE与JBOSS简介 1. **J2EE**:J2EE定义了一系列服务和技术标准...
J2EE提供了标准化的API和开发工具,使得开发者能够在不同的J2EE应用服务器上开发、测试和部署应用,常见的J2EE应用服务器有WebLogic、WebSphere、JBoss、GlassFish等。 #### 7. 动态适应性 J2EE应用服务器具备动态...
J2EE应用服务器是企业级Java应用程序开发和部署的核心平台,而Jboss和Tomcat的组合提供了一种开源且稳定的选择。Jboss是一款强大的J2EE应用服务器,它支持多种J2EE规范,如EJB(Enterprise JavaBeans)、JMS(Java ...
在本文中,我们将深入探讨如何使用Eclipse IDE进行J2EE应用程序的开发,结合Lomboz插件和JBoss应用服务器。Eclipse是一款强大的开源集成开发环境,特别适合Java开发者,而Lomboz是Eclipse的一个扩展,为J2EE项目提供...
在本文中,我们将深入探讨如何使用Eclipse IDE与Lomboz插件以及JBoss应用服务器进行J2EE应用程序的开发。Eclipse是一款广泛使用的开源集成开发环境,支持多种编程语言,包括Java。Lomboz是Eclipse的一个早期扩展,专...
开发J2EE应用程序需要深入理解其背后的一系列规范和技术,以构建稳定、安全且高效的工业级企业系统。J2EE提供了多种技术手段,包括JDBC、Entity Beans、JDO、Object/Relational Mapping (O/R Mapping) 工具、XML-...
由于J2EE主要用于企业级应用的开发,Eclipse通过提供强大的插件生态系统,能够极大地提高J2EE应用的开发效率和质量。例如,通过使用特定的J2EE开发插件,开发者可以轻松地进行Web应用开发、数据库集成、企业服务集成...
9. **容器管理**:J2EE应用运行在容器中,如Tomcat、WebLogic或JBoss,这些容器负责管理应用的生命周期,提供服务并执行J2EE规范。 通过这个"J2EE应用小程序",初学者可以深入理解J2EE的架构和工作原理,掌握...
10. **容器管理**:J2EE应用通常运行在应用服务器容器中,如Tomcat、WebLogic、JBoss等,这些容器提供了许多服务,如安全管理、事务管理、生命周期管理等。 这个PDF文档可能深入探讨了以上这些概念,并通过实例讲解...