2012-07-06 16 views
6

Aunque mirando el Tomcat, estoy consiguiendo el error siguiente:error en Tomcat durante el inicio: nombre de base de datos no encontró

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) 

que utiliza la misma configuración dB antes de Server.xml y Tomcat estaba trabajando bien, pero desde los últimos 2 días, cuando cambio el servidor e instalo una nueva copia, arroja este error.

Los GlobalNamingResources definidos en server.xml son los siguientes:

<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> 

Alguien tiene alguna sugerencia de cómo resolver este problema. Gracias.

Respuesta

5

Ha eliminado el tomcat-users.xml de $CATALINA_BASE/conf que está registrado en JNDI como UserDatabase de forma predeterminada.

+0

aún el mismo error ..... cualquier solución concreta sin atajos ... – user1417746

+1

Comparta todo el archivo 'server.xml'. –

5

creo que haya retirado a continuación del código de 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" /> 

reemplazarlo

1

Esto también podría significar que tiene un carácter XML en un atributo de su archivo tomcat-users.xml.

Por ejemplo, he visto que esto suceda cuando tenía un carácter "<" en el campo de la contraseña de un usuario en Tomcat-users.xml

extracto de archivo:

/etc/tomcat6 /tomcat-users.xml

<role rolename="manager"/> 
<user username="admin" password="<password" roles="manager"/> 
2

error en /var/log/tomcat6/catalina.out:

GRAVE: Catalina.start: 
LifecycleException: No UserDatabase component found under key UserDatabase 

verificar la posición de Tomcat-users.xml:

# updatedb 
# locate tomcat-users.xml 
/etc/tomcat6/tomcat-users.xml 

Abra la /etc/tomcat6/server.xml y editar:

<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" /> 

mediante la inserción de un camino correcto para tomcat-users archivo .xml En mi caso es:

pathname="tomcat-users.xml" 
+0

no funcionó. –

7

Tengo este problema causado por errores de sintaxis XML en mi tomcat-users.xml. Aunque estos errores son totalmente obvios, tardaron un tiempo en descubrirse y corregirse:

1.comillas dobles no válidos

  • erróneas: <role rolename=manager-script/>
  • Derecha: <role rolename="manager-script"/>

2. Falta de cierre de comillas dobles

  • incorrecto: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script/>
  • Derecha: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>

3. Falta estrecha barra

  • incorrecto: <role rolename="admin">
  • Derecha: <role rolename="admin"/>

4. Falta de espacio entre los atributos

  • incorrecto: <user username="tomcat" password="tomcat"roles="manager-gui,manager-script"/>
  • Derecha: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
+0

Esto funcionó! Me perdí una cita doble de cierre. – MAC

1

En server.xml, el elemento Resource o su elemento principal GlobalNamingResources no es obligatorio. Solo tendrá problemas si elimina a qué recursos están accediendo (por ejemplo, tomcat-users.xml).

Si comenta el elemento predeterminado GlobalNamingResources, asegúrese de desplazarse hacia abajo en server.xml y eliminar también el LockOutRealm. Utiliza el UserDatabase de forma predeterminada, especificado en GlobalNamingResources.

Cuestiones relacionadas