2012-07-06 41 views
6

Trong khi nhìn chằm chằm Tomcat, tôi nhận được lỗi sau:Lỗi trong Tomcat trong Startup: Tên DB không tìm thấy

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) 

tôi đã sử dụng cùng một cấu hình dB trước trong server.xml và Tomcat đã làm việc tốt, nhưng kể từ 2 ngày qua khi tôi thay đổi máy chủ và cài đặt một bản sao mới, nó sẽ ném lỗi này.

Các GlobalNamingResources quy định tại server.xml như sau:

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

Bất cứ ai có bất cứ gợi ý làm thế nào để giải quyết vấn đề này. Cảm ơn.

Trả lời

5

Bạn đã xóa tomcat-users.xml từ $CATALINA_BASE/conf được đăng ký trong JNDI là UserDatabase theo mặc định.

+0

vẫn lỗi tương tự ..... bất kỳ giải pháp cụ thể nào không có phím tắt ... – user1417746

+1

Chia sẻ toàn bộ tệp 'server.xml'. –

5

Tôi nghĩ rằng bạn đã gỡ bỏ dưới mã từ 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" /> 

thay thế nó

1

Điều này cũng có nghĩa là bạn có một nhân vật XML trong một thuộc tính của tập tin tomcat-users.xml của bạn.

Ví dụ, tôi đã nhìn thấy điều này xảy ra khi tôi đã có một "<" nhân vật trong lĩnh vực mật khẩu cho người dùng trong tomcat-users.xml

file trích đoạn:

/etc/tomcat6 /tomcat-users.xml

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

Lỗi trong /var/log/tomcat6/catalina.out:

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

Xác minh vị trí của tomcat-users.xml:

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

Mở /etc/tomcat6/server.xml và chỉnh sửa:

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

bằng cách chèn một đường dẫn chính xác để tomcat-người dùng tệp .xml. Trong trường hợp của tôi là:

pathname="tomcat-users.xml" 
+0

nó không hoạt động. –

7

Tôi gặp sự cố này do lỗi cú pháp XML trong số tomcat-users.xml của mình. Mặc dù các erros này hoàn toàn hiển nhiên, chúng mất một thời gian để được phát hiện và sửa lỗi:

1.dấu ngoặc kép không hợp lệ

  • sai: <role rolename=manager-script/>
  • Phải: <role rolename="manager-script"/>

2. Thiếu gần dấu ngoặc kép

  • sai: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script/>
  • Phải: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>

3. Thiếu dấu gạch chéo gần

  • sai: <role rolename="admin">
  • Phải: <role rolename="admin"/>

4. Thiếu không gian giữa các thuộc tính

  • sai: <user username="tomcat" password="tomcat"roles="manager-gui,manager-script"/>
  • Phải: <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
+0

Điều này làm việc !!! Tôi đã bỏ lỡ một dấu ngoặc kép đóng. – MAC

1

Trong tệp server.xml, phần tử Resource hoặc phần tử gốc GlobalNamingResources không bắt buộc. Bạn sẽ chỉ gặp sự cố nếu bạn xóa tài nguyên đang truy cập (ví dụ: tomcat-users.xml).

Nếu bạn nhận xét phần tử GlobalNamingResources mặc định, hãy đảm bảo bạn cuộn xuống trong tệp server.xml và xóa LockOutRealm. Nó sử dụng UserDatabase theo mặc định, được chỉ định trong trong GlobalNamingResources.

Các vấn đề liên quan