jboss4.23GA配置JNDI

根据网上传授的..步骤,终于配出来了.

 

1.把JBOSS_HOME\docs\examples\jca\下的对应的数据库配置,文件COPY到

      JBOSS_HOME\\server\default\deploy\下. 我配的是MYSQL.所以COPY的是mysql-ds.xml

 至于里面的内容.相信你一看也知道.....改成你对应的配置..我的是这样的

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connectionurl>jdbc:mysql://127.0.0.1:3306/test</connectionurl>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <use-java-context>false</use-java-context>
    <user-name>root</user-name>
    <password>root</password>
    <exception-sorter-class-name>
      org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
   </exception-sorter-class-name>
    
    
    <new-connection-sql>
     select * from books
   </new-connection-sql>
     
     
     <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

 为了省事,把注释的去掉了..^--^

 

2 . 修改jboss-4.2.3.GA\server\default\conf\下的standerjbosscmp-jdbc.xml中的位于<datasource>下的

 <!-- optional since 4.0 <datasource-mapping>Hypersonic SQL</datasource-mapping> -->

 

注释去掉..并且把Hypersonic SQL 改成上面对应

 <type-mapping>mySQL</type-mapping>
中的mySQL.. 注意大小写..

 

3 . 不忘了把你的驱动包放到对应的JBOSS 应用的lib中哟..我JBOSS用的是DEFAULT所以 放到了.default\conf\lib下..

4.编写代码..测试...

 

 

 Properties properties = new Properties();
            properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
                    "org.jnp.interfaces.NamingContextFactory");
            properties.setProperty(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
            properties.setProperty(Context.PROVIDER_URL, "localhost:1099");
            Context cont = new InitialContext(properties);
            Object obj=  cont.lookup("java:/MySqlDS");
            DataSource ds =(DataSource)obj;
            Connection con =ds.getConnection();
            Statement stmt = con.createStatement();
            ResultSet rs =stmt.executeQuery("select * from books");
            while(rs.next()){
                System.out.println(rs.getString(1)+"     "
              +rs.getString  (2));
            }
            rs.close();
            stmt.close();
            con.close();
            ds=null;
            System.out.println(" is ok!");

 

PS : 在上面写代码的时候,还不知道怎么把server\default\conf\jndi.properties文件关联到JBOSS的配置中.....

 

期待高手解答....

 

在第一步中,有红线的,如果不配会出现.JNDI NOT BOUND!!

你可能感兴趣的:(sql,mysql,SQL Server,jdbc,jboss)