tomcat5.0 下JNDI javax.naming.NameNotFoundException: Name jdbc is not bound in this Context 问题的解决

时间:2021-07-12 22:51:39

tomcat 下的JNDI仅仅是个gift, 没有商业服务器的绝对稳定。出现这种问题是因为配置文件出错,建议从头再来一遍。

第一步,配置全局的jndi数据源

第二步,修改server.xml 。一般正确 完成第一步后,系统自动完成server.xml的修改,但有个地方要改一下

<GlobalNamingResources>
    <Environment value="30" type="java.lang.Integer" name="simpleValue"/>
    <Resource type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" auth="Container" name="UserDatabase"/>
    <Resource type="javax.sql.DataSource" auth="Container" name="jdbc/v3"/>
    <Resource type="javax.sql.DataSource" auth="Container" name="jdbc/v3hd"/>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>
    <ResourceParams name="jdbc/v3">
      。。。。。。
  </GlobalNamingResources>

红色的地方要加上。

第二步 ,修改应用下的web.xml文件

   主要是在</web-app>之前添加如下

<resource-ref>        
            <description>DB2 Datasource v3hd</description>        
            <res-ref-name>jdbc/XXX</res-ref-name>        
            <res-type>javax.sql.DataSource</res-type>        
            <res-auth>Container</res-auth>       
       </resource-ref>

第三步,修改应用的xml , 一般在Tomcat 5.0/conf/Catalina/localhost/下,比如myproject.xml,添加如下:

<ResourceLink global="jdbc/XX" name="jdbc/XX" type="javax.sql.DataSource"/>

 

然后,重起tomcat!