下班路上接到同事求救電話,說誤用root用戶啓動weblogic後,用其餘用戶沒法啓動weblogic了,weblogic拋出以下異常:
java
java.lang.ClassCastException: com.octetstring.vde.backend.BackendRootweb
at weblogic.ldap.EmbeddedLDAP.start(EmbeddedLDAP.java:273)dom
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)spa
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)server
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)blog
>rem
<2010-8-9 下午06時36分55秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED>string
<2010-8-9 下午06時36分55秒 CST> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down>it
<2010-8-9 下午06時36分55秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWNio
考慮到是root用戶啓動weblogic以後出現此問題,分析是因爲root用戶是某些文件的權限或用戶組發生了變化,致使了其餘用戶的權限不足,使weblogic沒法啓動。所以,順藤摸瓜,根據異常裏最早拋出異常的代碼:
weblogic.ldap.EmbeddedLDAP.start(EmbeddedLDAP.java:273)
在系統裏查找了一番,發現$WEBLOGIC_HOME/user_projects/domains/base_domain/servers /AdminServer/data/ldap、ldapfiles路徑下的EmbeddedLDAP.tran變成了root用戶組的,因此其餘低權限用戶啓動weblogic就沒法打開此文件了。
#chown weblogic:bea EmbeddedLDAP.tran
問題解決。