在JBoss中利用JNDI配置数据源连接数据库

这个测试的这个例子中不含EJB内容,只是一个非常简单的数据库连接,因为其中一个细节纠缠了一整天所以记下来权做教训:).
试验的最终目的是这样:
  ......
    Context ctx = new InitialContext();   //具体jndi环境设置在jndi.properties中指定
    DataSource ds = (DataSource)ctx.lookup("Zqb Oracle Test"); //其中Zqb Oracle Test是我在oracle-ds.xml中指定的JNDI名
    
    Connection conn = ds.getConnection();
    PreparedStatement ps = conn.prepareStatement("select count(1) from css_emp_info");
    ResultSet rs = ps.executeQuery();
 ......

步骤如下:
   1,jndi.properties(使用jboss缺省的内容,不做修改):
          java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
          java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
   2,将jboss-4.0.1sp1\docs\examples\jca下的oracle-ds.xml拷贝到jboss-4.0.1sp1\server\default\deploy下,并做相应修改,主要内容如下:
<datasources>
  <local-tx-datasource>
    <jndi-name>Zqb Oracle Test</jndi-name>
    <use-java-context>false</use-java-context>
    <connection-url>jdbc:oracle:thin:@10.25.10.175:1521:pacesdev</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>cesbase</user-name>
    <password>voiture6</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
      <metadata>
         <type-mapping>Oracle9i</type-mapping>
      </metadata>
  </local-tx-datasource>
</datasources>
   3,OK,部署war,搞定!其中红色标注的是后面加上的,有了这句在jndi前可以不用加前缀;否则,需要加前缀java(即:lookup("Zqb Oracle Test") 和 lookup("java:Zqb Oracle Test")的区别).

补充: 发现在jboss官方网站有关于use-java-context这个属性的说明 http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfigDataSources ,仔细看看!

posted on 2007-05-11 15:57 心砚 阅读(3118) 评论(0)  编辑  收藏 所属分类: Java


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(2)

随笔分类

文章分类

文章档案

Forum

搜索

最新评论

阅读排行榜

评论排行榜