javax.naming.NameNotFoundException: Name UserDatabase is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:253)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1006)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
2009-10-21 13:50:35 org.apache.catalina.startup.Catalina starserver.xml的配置是
<Resource auth="Container" 
description="DB Connection"
driverClass="oracle.jdbc.driver.OracleDriver" 
maxPoolSize="10" 
minPoolSize="2" 
acquireIncrement="2" 
name="jdbc/ora11g" 
user="spms_yn" 
password="spms_yn" 
factory="org.apache.naming.factory.BeanFactory" 
type="com.mchange.v2.c3p0.ComboPooledDataSource" 
jdbcUrl="jdbc:oracle:thin:@10.10.1.93:1521:ora10"/>context.xml<ResourceLink global="jdbc/ora11g" name="jdbc/ora11g" type="javax.sql.DataSource"/>web.xml
<resource-ref> 
      <description>DB Connection </description> 
      <res-ref-name>jdbc/ora11g </res-ref-name> 
      <res-type>javax.sql.DataSource </res-type> 
      <res-auth>Container </res-auth> 
  </resource-ref> 我用了以前的默认方式配置是可以运行的。因为需要c3p0配置,所以就改成这样,不知道哪里错了或者哪里需要进行更改tomcat下lib中的包都在
c3p0-0.9.1.2.jar
c3p0-0.9.1.2-jdk1.3.jar
c3p0-oracle-thin-extras-0.9.1.2.jar
关于c3p0的三个jar包都在,并且是官网上下的。至于那个Name UserDatabase is not bound in this Context  
我没定义UserDatabase 这个名字,怎么会是找不见呢?原来的配置有这个名字的

解决方案 »

  1.   

    自己给自己刷三次  - -!!!!!!!!  没人就over了。嗨,每次在csdn问过,都是这样的结果
      

  2.   

    http://cheayu.javaeye.com/blog/442001那有那么快的呀~~
      

  3.   

    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!