这是个老话题,如何在在apusic中配置数据源引用?
工作中发现不少同事碰到数据源的资源引用时,有点无所适从:
"java:comp/env/OracleDS",啥意思?
其实很简单,应用中配置了一个JNDI名为 OracleDS的资源引用,该资源引用可能对应不同JNDI名的实际的连接池。这种东东出现在EJB1.0的年代,主要目的是不改动应用的情形下将EAR(包含EJB?)部署到不同的环境中去。该用法一直被延续至今。
在apusic中配置一个数据源的资源引用过程大概是这样:
1.WEB-INF\web.xml文件中,加入以下片段:
<resource-ref> <description></description> <res-ref-name>OracleDS</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
上述配置信息说明,配置了一个引用名为 OracleDS的数据源的资源引用。
2.创建META-INF\apusic-application.xml,加入以下内容:
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE apusic-application PUBLIC '-//Apusic//DTD Apusic Application 4.0.2//EN' 'http://www.apusic.com/dtds/apusic-application_4_0_2.dtd'> <apusic-application> <module uri=""> <web> <resource-ref> <res-ref-name>OracleDS</res-ref-name> <jndi-name>OracleDS</jndi-name> </resource-ref> </web> </module> </apusic-application>
在这里,名为 OracleDS的资源引用被映射到实际的数据源,该数据源的jndi名为OracleDS。