2012-07-06 6 views
6

Tomcat bakan ederken, aşağıdaki hatayı alıyorum bulunamadı:Hata: DB adı

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) 

önce server.xml ve Tomcat iyi çalışıyordu aynı dB yapılandırmayı kullanılır, ancak sunucuyu değiştirdiğimde ve yeni bir kopya yüklediğimde son 2 gündür bu hatayı atıyor. aşağıdaki gibi server.xml tanımlanan

GlobalNamingResources şunlardır:

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

Herkes bu sorunu çözmek için nasıl herhangi bir ipucu var. Teşekkürler.

cevap

5

Varsayılan olarak, UserDatabase olarak JNDI'da kayıtlı olan 'dan tomcat-users.xml kaldırdınız.

+0

hala aynı hata ..... kısayollar olmadan herhangi bir somut çözüm ... – user1417746

+1

Tüm 'server.xml' dosyasını paylaşın. –

1

Bu aynı zamanda sizin erkek kedi-users.xml dosyasının bir ayrıntıda bir XML karaktere sahip olduğu anlamına gelebilir yerine 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" /> 

kod aşağıda kaldırdık düşünüyorum.

Örneğin, ben tomcat-users.xml bir kullanıcı için şifre alanına bir "<" karakter vardı bu ne zaman gördüğüm

Dosya alıntı:

/etc/tomcat6 /var/log/tomcat6/catalina.out içinde /tomcat-users.xml

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

Hata:

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

tomcat-users.xml pozisyonunu kontrol edin: tomcat-users doğru yolunu ekleyerek

<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 

Açık /etc/tomcat6/server.xml ve düzenle .xml dosyası. Benim durumumda ise: benim tomcat-users.xml XML sözdizimi hataları nedeniyle bu sorunu var

pathname="tomcat-users.xml" 
+0

işe yaramadı. –

7

. Bu hatalar tamamen açık olsa da, öğrenilmesi ve düzeltilmesi için biraz zaman harcadılar:

1.Geçersiz çift tırnak

  • Yanlış: <role rolename=manager-script/>
  • Sağ: <role rolename="manager-script"/>

2. Eksik yakın çift tırnak

  • Yanlış: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script/>
  • Sağ: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>

3. Eksik yakın çizgi

  • Yanlış: <role rolename="admin">
  • Sağ: nitelikler arası <role rolename="admin"/>

4. Eksik uzay

  • Yanlış: <user username="tomcat" password="tomcat"roles="manager-gui,manager-script"/>
  • Sağ: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
+0

Bu işe yaradı! Bir kapanış çift teklifini kaçırmıştım. – MAC

1

Sunucu.xml dosyasında, Resource öğesi veya üst öğesi GlobalNamingResources öğesi zorunlu değildir. Kaynakların eriştiğini (örneğin, tomcat-users.xml) kaldırırsanız yalnızca sorunlarınız olur.

Varsayılan GlobalNamingResources öğeye yorum yaparsanız, sunucu.xml içinde aşağı kaydırdığınızdan emin olun ve LockOutRealm'u da kaldırın. GlobalNamingResources'da belirtilen varsayılan olarak UserDatabase kullanır.