首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LifecycleException:在key下面找不到UserDatabase组件

LifecycleException:在key下面找不到UserDatabase组件
EN

Stack Overflow用户
提问于 2013-01-05 07:09:56
回答 2查看 16.5K关注 0票数 4

这是我的servlet.xml文件

代码语言:javascript
运行
复制
<GlobalNamingResources>
  <Resource auth="Container"
 driverClassName="oracle.jdbc.driver.OracleDriver"
     initialSize="5"
       maxActive="120"
         maxIdle="5"
         maxWait="5000"
            name="jdbc/EPRT_DEV"
        password="admin"
             url="jdbc:oracle:thin:hr/password@192.168.178.83:1521:XE"
        username="system"
         factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
        pathname="conf/tomcat-users.xml"
            type="javax.sql.DataSource" />
</GlobalNamingResources>

<!--
  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
      resourceName="UserDatabase"/>
-->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
    resourceName="jdbc/EPRT_DEV"/>

这是我的context.xml文件

代码语言:javascript
运行
复制
<ResourceLink name="jdbc/EPRT_DEV"
            global="jdbc/EPRT_DEV"
              type="javax.sql.DataSource"/>

有什么想法吗?请帮帮我..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-05 14:29:00

首先,没有Tomcat识别的名为servlet.xml的文件。我希望你是指CATALINA_BASE/conf/server.xml

其次,您的<Resource>定义完全混乱:您需要阅读关于资源定义的Tomcat文档MemoryUserDatabaseFactory的目的是读取由<Resource>定义的path属性指定的文件,但您似乎试图使用<Resource>数据库进行身份验证。

同样,您使用的是UserDatabaseRealm (打算与MemoryUserDatabaseRealm配对)‘,然后尝试将其连接到已损坏的DataSource。

如果要使用Oracle,则从factory定义中删除<Resource>pathname属性,并将<Realm>中的className更改为className。也要阅读DataSourceRealm文档,因为它的配置与这里的配置非常不同。

如果您必须重新发布,请包括您遇到的任何错误的完整堆栈跟踪,并编辑您的文章,以包括适当的细节,而不是做所有从内存。

票数 4
EN

Stack Overflow用户

发布于 2013-05-03 10:38:44

可能是你们写了些在tomcat-users.xml中不允许的东西

早些时候,我在" roles“中添加了admin,得到了同样的错误.我刚刚从tomcat-users.xml中删除了该角色。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14169545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档