以下简略说明一下。 我们部署一个应用 ( 项目 ) ,应用启动之初一般都进行若干初始化吧,可能会从文件里、 数据库 里获取一些基础数据或配置项等等。 如" name="description" />
MILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以下简略说明一下。
我们部署一个应用(项目),应用启动之初一般都进行若干初始化吧,可能会从文件里、数据库里获取一些基础数据或配置项等等。
如果从数据库里获取基础数据,则我们必须确保配置的那些数据源及相关的服务在我们应用开始加载之前生效(已经启动或加载完毕);也就是说,在我们部署应用的一些初始化数据方法里要能正常获取数据。如果你不做一些设置,仅仅是将配好的ds_oracle_test.xml扔到…/deploy/下,那么很遗憾的告诉你,你的应用在初始化数据阶段根本不能从连接池中获取到连接,进而获取数据。如要达到你初始化数据的目的,请按照上面我提供的那个帖子连接去查看详细的信息,下面我仅提供解决方法。
1)、配置数据源:
< !--oracle_ds.xml-- >
< datasources >
< local-tx-datasource >
< jndi-name > jdbc/test < /jndi-name >
2)确认datasource依赖的服务名
透过http://wiki.jboss.org/wiki/Wiki.jsp?page=DependOnDataSource我们发现:
javascript>======原文引用==============
! Depending on a DataSource
To specify a dependency on a DataSource deployment, you need to depend on the service which binds the DataSource into JNDI.
The DataSource is not bound into JNDI until the service jboss.jca:service=DataSourceBinding,name=(jndi-name) has been
started. The (jndi-name) is the value of the jndi-name attribute for your DataSource as defined in the *-ds.xml.
The associated connection manager service is a function of the type of DataSource and its jndi-name attribute value. The
MBean names for the types of DataSource deployments are:
1 | no-tx-datasource jboss.jca:service=NoTxCM?,name=(jndi-name) local-tx-datasource jboss.jca:service=LocalTxCM?,name=(jndi-name) xa-datasource jboss.jca:service=XATxCM?,name=(jndi-name) no-tx-connection-factory jboss.jca:service=NoTxCM?,name=(jndi-name) tx-connection-factory jboss.jca:service=TxCM?,name=(jndi-name) |
通过上述描述可以知道,数据源配置不同,则对应的依赖服务名信息也不同。
根据上述描述及数据源配置,相关的服务名就是:
"jboss.jca:service=LocalTxCM,name=jdbc/test".
我修改了 ...sar/...war/WEB-INF/jboss-web.xml(如果不存在该文件,就创建它),然后运行jboss,就可以在初始化时找到datasource,并正确获取数据了!!!
配置文件如下:
1 | |