JBOSS 3.2.X为实体Bean(Entity Bean)配置数据源

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

有同好询问JBOSS 3.2.4如何为实体EJB配置额外JDBC数据源,网上流传较广的中文文献版本为《JBoss3.0 下配置和部署EJB简介》(by huihoo.org 赵晨希,zhaochenxi@vip.sina.com),由于仓促或版本差异,实体BEAN数据源配置一章节与3.2.X版本有微妙不同,造成许多同好误解。

在此为赵先生做如下补充:

在3.2.x版本下配置额外数据源,需要部署目录或EJB中存在

1。数据类型映射文件:

2。JDBC数据源JNDI注册文件及相应数据源JAR

3。EJB部署文件

以上文件均有相应命名规则。

1。数据映射文件:

需要在JBOSS部署目录 找到数据类型映射文件

Jboss安装目录\server\default\conf \standardjbosscmp-jdbc.xml

确认其中存在欲添加数据源的 DBMS数据类型 到JAVA 数据类型的映射设置,此处以MYSQL为例,应存在节点

<type-mapping>

<name>mySQL</name>

………………

记住其中类型映射名称“mySQL”,已备后用。

2。JDBC数据源JNDI注册文件及相应数据源JAR

2-1 将对应的JDBC JAR文件复制到 Jboss安装目录\server\default\lib 中(此处使用了JDBC mysql-connector-java-3.1.1-alpha-bin.jar作为MYSQL JDBC)

2-2 在Jboss安装目录\server\default\deploy 目录添加JDBC数据源JNDI注册文件,注意!该文件一定要以*-ds.xml命名!此处十分容易出错!只有数据源拥有了JNDI名称,实体BEAN才能创建正确地JDBC实例。

注册文件有相应格式规定。

常见数据库的样本文件可于 Jboss安装目录\docs\examples\jca 目录下找到。

仍以MYSQL为例,复制 Jboss安装目录\docs\examples\jca 目录下mysql-ds.xml到 Jboss安装目录\server\default\deploy目录,并作相应编辑:以Mysql为例,编辑如下:

例文:

<?xml version="1.0" encoding="UTF-8"?>

<datasources>

<local-tx-datasource>

<jndi-name>MySqlDS</jndi-name> <!--JNDI注册名-->

<connection-url>jdbc:mysql://127.0.0.1/lll</connection-url><!--JDBC连接字符串-->

<driver-class>org.gjt.mm.mysql.Driver</driver-class> <!-JDBC提供类--->

<user-name>root</user-name> <!--用户名-->

<password></password> <!--密码-->

</local-tx-datasource>

</datasources>

注意,非本地又需要分布式事务的数据库,如Oracle、SQL Server等可用<xa-datasource>注册JNDI,以便JBOSS提供额外支持。

例文:

<?xml version="1.0" encoding="UTF-8"?>

<datasources>

<xa-datasource>

……………………

此类情况应以*-xa-ds.xml来命名JNDI部署文件。常见样例依旧参看 Jboss安装目录\docs\examples\jca目录。

3。EJB部署文件

在部署的实体EJB包中添加 \META-INF\jbosscmp-jdbc.xml文件。

并填写相关信息:

例文为JBuilber X生成部署模板,包括一个实体BEAN be1

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN"

"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_2.dtd">

<jbosscmp-jdbc>

<defaults>

<datasource>java:/MySqlDS</datasource> <!--JDBC的JNDI默认注册名称,需与2中*.-ds.xml设

置一致,注意JBOSS需要附加JAVA前缀-->

<datasource-mapping>mySQL</datasource-mapping> <!--JDBC默认类型映射名,需与1中standardjbosscmp-jdbc.xml设置一致-->

</defaults>

<enterprise-beans>

<entity>

<ejb-name>be1</ejb-name>

<datasource>java:/MySqlDS</datasource><!--实体BEAN be1 JDBC的JNDI注册名称,需与2中*.-ds.xml设置一致,注意JBOSS需要附加JAVA前缀-->

<datasource-mapping>mySQL</datasource-mapping><!--实体BEAN be1 JDBC类型映射名,需与1中standardjbosscmp-jdbc.xml设置一致-->

<table-name>news</table-name>

<cmp-field>

<field-name>pid</field-name>

<column-name>ID</column-name>

</cmp-field>

</entity>

</enterprise-beans>

</jbosscmp-jdbc>

至此,直接拷贝EJB至部署目录(Jboss安装目录\server\default\deploy)即可。

如有差勿请确认存在以下文件:

类型映射配置文件: Jboss安装目录\server\default\conf \standardjbosscmp-jdbc.xml

JDBC driver: Jboss安装目录\server\default\lib\connector-java-3.1.1-alpha-bin.jar

JDBC driver JNDI注册文件:Jboss安装目录\server\default\deploy\mysql-ds.xml

ejb配置文件: ejb包中 \META-INF\jbosscmp-jdbc.xml

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

题外:JBOSS 3.2.4整和TOMCAT 5作为HTTP容器,通常应位于Jboss安装目录\server\default\deploy\jbossweb-tomcat50.sar中

server.xml用于修改服务端口等设置(<Connector>节点),具体参见TOMCAT文档

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

附加资源:

JBOSS 3.2.X的配置英文说明书,参考原文:http://www.wmenl.com/doc/index.pdf

中文自译版本请向作者索取:00x0@sina.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航