下班路上接到同事求救电话,说误用root用户启动weblogic后,用其他用户无法启动weblogic了,weblogic抛出如下异常:
java.lang.ClassCastException: com.octetstring.vde.backend.BackendRoot
at weblogic.ldap.EmbeddedLDAP.start(EmbeddedLDAP.java:273)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
>
<2010-8-9 下午06时36分55秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED>
<2010-8-9 下午06时36分55秒 CST> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down>
<2010-8-9 下午06时36分55秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN
考虑到是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
问题解决。
来源:oschina
链接:https://my.oschina.net/u/2381604/blog/613389