在Tomcat5.0 环境下如何配置JNDI

来源:互联网 发布:java移植破解游戏网站 编辑:程序博客网 时间:2024/05/22 14:35

在Tomcat5.0 环境下如何配置JNDI

关键词:                                          

 


第一步:首先在tomcat$/conf文件夹(tomcat$指的是tomcat的安装目录,下皆同).中的server.xml中找到  <GlobalNamingResources> 它是JNDI的配

置部分。在里面添加
<!-- JNDI Demo -->
<!-- jdbc/Register中的Register是你虚拟目录的名字 这个很重要 否则的话会出现Name  is not bound 这样的错误
  -->
 <Resource name="jdbc/Register" auth="Container" type="javax.sql.DataSource"/>
 <ResourceParams name="jdbc/Register">
 <parameter>
 <name>factory</name>
 <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 </parameter>
  <parameter>
     <name>url</name>
     <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test_njupt</value>
    </parameter>
    <parameter>
     <name>driverClassName</name>
     <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
    </parameter>
 <parameter>
 <name>maxActive</name>
 <value>100</value>
 </parameter>
 <parameter>
 <name>maxIdle</name>
 <value>30</value>
 </parameter>
 <parameter>
 <name>maxWait</name>
 <value>10000</value>
 </parameter>
  <!-- SQLServer dB username and password for dB connections  -->
    <parameter>
 <name>username</name>
 <value>sa</value>
 </parameter>
 <parameter>
 <name>password</name>
 <value>fxh1984</value>
 </parameter>
 </ResourceParams>
 <!-- JNDI Demo -->
第二步:在这个server.xml文件下面还有<host></host>这部分,要在刚才的虚拟目录中添加
 <ResourceLink   name="jdbc/Register"   global="jdbc/Register"   type="javax.sql.DataSource"/>  
我的虚拟目录部分是
<Context path="/Register" reloadable="true" docBase="C:/workspace/Register" workDir="C:/workspace/Register/work" >
 <!-- JNDI Demo -->
 <ResourceLink   name="jdbc/Register"   global="jdbc/Register"   type="javax.sql.DataSource"/>  
<!-- JNDI Demo -->   
</Context>

上三步:在你的应用系统的目录 (我的是C:/workspace/Register/  ,上一步中出现的)中WEB-INF文件夹下的web.xml中添加如下的信息
<resource-ref>
<description>Demo</description>
<res-ref-name>jdbc/Register</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第四步:就可以在系统中使用JNDI
   Context initCtx=new InitialContext();
      if(initCtx==null) throw new Exception("没有匹配的环境");
     Context ctx=(Context)initCtx.lookup("java:/comp/env");
     javax.sql.DataSource ds=(javax.sql.DataSource)ctx.lookup("jdbc/Register");
     Connection conn=ds.getConnection();
     out.println("connection is"+conn+"<br>");
在tmocat中出现
Cannot   create   JDBC   driver   of   class   ''   for   connect   URL   'null'
是多方面的原因。我原来没有使用第三步。

 需要值得一提的是 jdbc/ 后面的名字要和contex的名字一致