错误:DB找不到名称
虽然盯着Tomcat的,我收到以下错误:错误:DB找不到名称
SEVERE: Exception looking up UserDatabase under key UserDatabase
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:1049)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Jul 6, 2012 4:32:25 PM org.apache.catalina.startup.Catalina start
SEVERE: Catalina.start:
LifecycleException: No UserDatabase component found under key UserDatabase
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:261)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1049)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
我用同样的分贝配置之前在server.xml中和Tomcat工作正常,但自从最近2天我更换服务器并安装新副本后,它抛出了此错误。是
server.xml中定义的GlobalNamingResources如下:
<GlobalNamingResources>
<Resource name="jdbc/abcdOracle" auth="Container"
type="javax.sql.DataSource"
maxActive="100" initialSize="5" maxWait="2000"
username="xxxxxx" password="xxxxxx"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@xxxxxx.xxxxxx.net:1523:ABCDE"
validationQuery="select sysdate from dual"
validationInterval="30000"
testWhileIdle="true" testOnBorrow="true" testOnReturn="false"
removeAbandoned="true" logAbandoned="true"
removeAbandonedTimeout="60" />
</GlobalNamingResources>
任何人有任何提示如何解决这个问题。 谢谢。
您已将tomcat-users.xml
从$CATALINA_BASE/conf
中删除,默认情况下,它在JNDI中注册为UserDatabase
。
我想你下面的代码删除从server.xml中
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
更换
这也可能意味着你有你的tomcat-users.xml文件的属性的XML字符。
例如,我已经看到这种情况发生时,我曾在密码领域的 “<” 字符有关Tomcat-users.xml中用户
文件摘录:
的/ etc/tomcat6中/tomcat-users.xml
<role rolename="manager"/>
<user username="admin" password="<password" roles="manager"/>
错误/var/log/tomcat6/catalina.out:
GRAVE: Catalina.start:
LifecycleException: No UserDatabase component found under key UserDatabase
验证Tomcat的users.xml中的位置:通过插入正确的路径Tomcat的用户
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
:和
# updatedb
# locate tomcat-users.xml
/etc/tomcat6/tomcat-users.xml
打开/etc/tomcat6/server.xml 编辑.xml文件。在我的情况是:
pathname="tomcat-users.xml"
它没有工作。 – 2016-03-27 19:30:57
我有这个问题,由我的tomcat-users.xml
XML语法错误引起的。虽然这些错误是完全明显的,但他们花费了一些时间来发现并修复:
1。无效的双引号
- 错误:
<role rolename=
”
manager-script
”
/>
- 右:
<role rolename="manager-script"/>
2.缺少结束双引号
- 错误:
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script/>
- 右:
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script
"
/>
3.缺少结束斜线
- 错误:
<role rolename="admin">
- 右:属性之间
<role rolename="admin"
/
>
4.缺少空间
- 错误:
<user username="tomcat" password="tomcat"roles="manager-gui,manager-script"/>
- 右:
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
这工作!我错过了一个最后的双引号。 – MAC 2017-11-13 18:11:26
在server.xml中,Resource
元素或其父元素GlobalNamingResources
不是必需的。如果您删除了资源正在访问的内容(例如,tomcat-users.xml),则只会遇到问题。
如果您注释掉默认的GlobalNamingResources
元素,请确保在server.xml中向下滚动并删除LockOutRealm
。它默认使用UserDatabase
,在GlobalNamingResources
中指定。
还是一样的错误.....没有快捷方式的任何具体解决方案... – user1417746 2012-07-06 21:00:15
分享整个'server.xml'文件。 – 2012-07-06 21:04:55