安裝weblogic petstore時發生的undocumented problem的解決辦法
BEA公司為weblogic server準備了petstore for weblogic供開發者安裝, 因為最近測試Hyperic-HQ, 所以進行了petstore for weblogic的安裝.首先, 需要下載Sun的petstore和在bea.com下載petstore for weblogic. 對應weblogic 8.1服務器的petstore版本是1.3.2.
下載后, 按照下載包中的readme.txt文件的提示一步一步安裝, 沒有什么問題, readme上說得非常清楚. 但是到Step1的第12步和Step2的第7步卻無法啟動weblogic服務器. 現象為, 啟動后拋出如下異常.
<2006/09/06?9時13分08秒?CST>?<Critical>?<WebLogicServer>?<BEA-000364>?<Server?failed?during?initialization.?Exception:weblogic.security.spi.ProviderInitializationException:?[Security:090314]Entitlement?Engine?unable?to?connect?to?the?embedded?LDAP?server
netscape.ldap.LDAPException:?error?result?(50)
weblogic.security.spi.ProviderInitializationException:?[Security:090314]Entitlement?Engine?unable?to?connect?to?the?embedded?LDAP?server
netscape.ldap.LDAPException:?error?result?(50)
????????at?weblogic.security.providers.authorization.DefaultAuthorizationUtils.getEngine(DefaultAuthorizationUtils.java:130)
????????at?weblogic.security.providers.authorization.DefaultRoleMapperProviderImpl.initialize(DefaultRoleMapperProviderImpl.java:104)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.createSecurityProvider(SecurityServiceManagerDelegateImpl.java:242)
????????at?weblogic.security.service.SecurityServiceManager.createSecurityProvider(SecurityServiceManager.java:957)
????????at?weblogic.security.service.RoleManager.initialize(RoleManager.java:152)
????????at?weblogic.security.service.RoleManager.<init>(RoleManager.java:98)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.doRole(SecurityServiceManagerDelegateImpl.java:513)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.initializeRealm(SecurityServiceManagerDelegateImpl.java:409)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.loadRealm(SecurityServiceManagerDelegateImpl.java:700)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.initializeRealms(SecurityServiceManagerDelegateImpl.java:733)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.initialize(SecurityServiceManagerDelegateImpl.java:876)
????????at?weblogic.security.service.SecurityServiceManager.initialize(SecurityServiceManager.java:734)
????????at?weblogic.t3.srvr.T3Srvr.initializeHere(T3Srvr.java:822)
netscape.ldap.LDAPException:?error?result?(50)
weblogic.security.spi.ProviderInitializationException:?[Security:090314]Entitlement?Engine?unable?to?connect?to?the?embedded?LDAP?server
netscape.ldap.LDAPException:?error?result?(50)
????????at?weblogic.security.providers.authorization.DefaultAuthorizationUtils.getEngine(DefaultAuthorizationUtils.java:130)
????????at?weblogic.security.providers.authorization.DefaultRoleMapperProviderImpl.initialize(DefaultRoleMapperProviderImpl.java:104)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.createSecurityProvider(SecurityServiceManagerDelegateImpl.java:242)
????????at?weblogic.security.service.SecurityServiceManager.createSecurityProvider(SecurityServiceManager.java:957)
????????at?weblogic.security.service.RoleManager.initialize(RoleManager.java:152)
????????at?weblogic.security.service.RoleManager.<init>(RoleManager.java:98)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.doRole(SecurityServiceManagerDelegateImpl.java:513)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.initializeRealm(SecurityServiceManagerDelegateImpl.java:409)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.loadRealm(SecurityServiceManagerDelegateImpl.java:700)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.initializeRealms(SecurityServiceManagerDelegateImpl.java:733)
????????at?weblogic.security.service.SecurityServiceManagerDelegateImpl.initialize(SecurityServiceManagerDelegateImpl.java:876)
????????at?weblogic.security.service.SecurityServiceManager.initialize(SecurityServiceManager.java:734)
????????at?weblogic.t3.srvr.T3Srvr.initializeHere(T3Srvr.java:822)
這個問題的原因是petstore模板中的Critical密鑰已經過期.
解決辦法是找到weblogic的配置文件config.xml.
修改其中的如下這行
<EmbeddedLDAP Name="petstore" Credential="{3DES}78P9aVGmaIE="/>
將其中的Credential屬性刪除即可. 再啟動weblogic的時候, 服務器會重新自動生成一個Credential.
這個問題在petstore for weblogic的readme中并沒有提到. 因此不少同志在安裝的時候遇到這個問題. 在此進行一下memo, 以饗后來人.