严重:在键 UserDatabase javax.naming.NameNotFoundException 下查找 UserDatabase 时出现异常:名称 [UserDatabase] 未在此上下文中绑定

2024-03-10

我正在使用 TOMCAT 9 和最新的 hibernate jars 以及 java 1.8
我在 mysql 中创建简单用户和 1 个名为 foo1 的表数据库
在我的 tomcat 中的 web 应用程序中,我根据在线示例进行配置:

工作区\HibernateApp\src\hibernate.cfg.xml:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>

        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="current_session_context_class">thread</property>
        <property name="hbm2ddl.auto">update</property>

        <property name="hibernate.max_fetch_depth">3</property>

        <property name="connection.datasource">java:comp/env/jdbc/foo1</property>

        <!-- Mapping files -->

        <!--mapping class="com.playground.myapp.model.User"/-->

    </session-factory>
</hibernate-configuration>

工作区\HibernateApp\WebContent\META-INF\context.xml

<?xml version="1.0" encoding="UTF-8"?>

<Context antiJARLocking="true" path="/">
    <Resource
            name="jdbc/foo1"
            auth="Container"
            type="javax.sql.DataSource"
            username="foo1"
            password="12345"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/foo1"
            maxActive="8"
            maxIdle="4"/>

</Context>

然后我不确定我是否还需要在 server.xml 中设置资源,但我做到了 正如我看到开发人员在网上做的那样

工作区\服务器\Tomcat v9.0 服务器位于 localhost-config\server.xml

<GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <!-- Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/-->
   <Resource
            name="jdbc/foo1"
            auth="Container"
            type="javax.sql.DataSource"
            username="foo1"
            password="12345"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/foo1"
            maxActive="8"
            maxIdle="4"/>
  </GlobalNamingResources>

但我不断收到此运行时错误:

SEVERE: Exception looking up UserDatabase under key UserDatabase
javax.naming.NameNotFoundException: Name [UserDatabase] is not bound in this Context. Unable to find [UserDatabase].
    at org.apache.naming.NamingContext.lookup(NamingContext.java:817)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:173)
    at org.apache.catalina.realm.UserDatabaseRealm.startInternal(UserDatabaseRealm.java:215)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.realm.CombinedRealm.startInternal(CombinedRealm.java:245)
    at org.apache.catalina.realm.LockOutRealm.startInternal(LockOutRealm.java:115)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:926)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:655)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

严重:在键 UserDatabase javax.naming.NameNotFoundException 下查找 UserDatabase 时出现异常:名称 [UserDatabase] 未在此上下文中绑定 的相关文章

随机推荐