下班路上接到同事求救电话,说误用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
问题解决。