解決WebLogic啟動時BEA-171522異常(啟動時報classcast exception)

上善若水發表於2016-08-10

如下異常:

<2016-8-10 上午08時25分19秒 CST> <Critical> <WebLogicServer> <BEA-000362> <Server failed. Reason: 


There are 1 nested errors:


java.lang.ClassCastException: com.octetstring.vde.backend.BackendRoot cannot be cast to com.octetstring.vde.backend.standard.BackendStandard
at weblogic.ldap.EmbeddedLDAP.start(EmbeddedLDAP.java:303)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)



<2016-8-10 上午08時25分19秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED> 
<2016-8-10 上午08時25分19秒 CST> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down> 
<2016-8-10 上午08時25分19秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>


在經過多方查證後,發現是由於在專案開發中,曾有專案成員使用root使用者啟動過WebLogic,造成WebLogic的LDAP檔案的許可權屬性為root:root(前一個為使用者,後一個為組),所以在啟動的過程中會提示LDAP異常。

知道了原因,再考慮解決方案。既然是許可權方面出現了問題,那麼就需要將許可權修改為正確的屬性,使用以下命令:

格式:
#chown -R weblogic:weblogic  <mydomain_dir>
執行這條命令即可:
#chown -R weblogic:weblogic /home/weblogic/Oracle/Middleware/user_projects/domains

說明:前一個webogic是指使用者,後一個weblogic是指使用者所屬組,而<mydomain_dir>是應用所在domain目錄,此外,該命令一定要用root許可權執行。

在修改完許可權之後,重新啟動WebLogic,異常消失,可以正常啟動。

/home/weblogic/bea/user_projects/domains/webtrade/servers/AdminServer/data/ldap/ldapfiles
/home/weblogic/bea/user_projects/domains/webtrade/servers/server1/data/ldap/ldapfiles



相關文章