[轉帖]如何解決 Portal 日誌中的錯誤信息 EJPSG0015E?

當訪問某些 portlet 的時候,日誌中報出如下錯誤: 

[08-3-21 17:11:16:000 CST] 00000041 WCM_Workspace W IWKCW1006X: 連接到用戶存儲庫時發生錯誤。原因:IWKMU1062X: 消息:EJPSG0015E: 數據後端問題 com.ibm.websphere.wmm.exception.AttributeNotDefinedException: 沒有爲成員類型“Person”定義屬性“uid”,原因:com.ibm.wps.util.DataBackendException: EJPSG0015E: 數據後端問題 com.ibm.websphere.wmm.exception.AttributeNotDefinedException: 沒有爲成員類型“Person”定義屬性“uid”。無法返回成員 id: cn=測試,cn=users,dc=sh,dc=ibm,dc=com 
attributeSubset: null 
memberIdentifier: [cn=測試,cn=users,dc=sh,dc=ibm,dc=com / 18f298bfdc1a1b41a3e950c5e36f92af] 
attributes: {sn=sn:測試, userAccountControl=userAccountControl:66048, cn=cn:測試, createTimestamp=createTimestamp:2006-12-25 11:38:50.0, samAccountName=samAccountName:31000002, modifyTimestamp=modifyTimestamp:2007-07-03 02:58:57.0, givenName=givenName:31000002, displayName=displayName:測試} 
objectID: [ExtIDImpl '9eAeH1EC6P47OHOC6IDCH9O23HH6H9O6JI57L1C6MQKCJHDCMS861JP0' [18f298bfdc1a1b41a3e950c5e36f92af / USER, Domain: [Domain: rel]]] 
descriptor: com.ibm.wps.datastore.impl.PrincipalDescriptorImpl@a94f83a1 
objectID: [ExtIDImpl '9eAeH1EC6P47OHOC6IDCH9O23HH6H9O6JI57L1C6MQKCJHDCMS861JP0' [18f298bfdc1a1b41a3e950c5e36f92af / USER, Domain: [Domain: rel]]] 
created: 1167102764984 
lastModified: 1206090655500 
distinguishedName: cn=測試,cn=users,dc=sh,dc=ibm,dc=com 
resourceType: USER 
hasLoggedOut: true 
lastLoginTime: 1206090655500 
markupData: {html=<Placeholder: LazyLoad String(1)>} 

stack: com.ibm.wps.puma.User 
 
[08-3-21 17:11:16:031 CST] 00000041 WCM_InitTag W com.ibm.workplace.wcm.api.WCM_InitTag 處理請求時捕獲異常。原因:p_user cannot be null. 
[08-3-21 17:11:16:031 CST] 00000041 WCM_InitTag W com.ibm.workplace.wcm.api.WCM_InitTag 
java.lang.NullPointerException: p_user cannot be null. 
at com.aptrix.util.CodeIntegrityUtils.checkNotNull(CodeIntegrityUtils.java(Compiled Code)) 
at com.presence.connect.wmmcomms.UserManagementUtils.setUser(UserManagementUtils.java:159) 
at com.ibm.workplace.wcm.api.WCM_Workspace.<init>(WCM_Workspace.java:206) 
at com.ibm.workplace.wcm.api.WCM_Repository.getWorkspace(WCM_Repository.java:115) 
at com.ibm.workplace.wcm.api.WCM_InitTag.doStartTag(WCM_InitTag.java:107) 
at com.ibm._jsp._view._jspService(_view.java:250) 
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:91) 
... 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code)) 

解答: 

這是因爲uid屬性沒有正確配置導致的。 

解決方法如下: 

1. 備份並修改 <WP_root>\wmm\wmmLAAttributes.xml ,增加如下行: 
<attributeMap wmmAttributeName="uid" 
pluginAttributeName="uid" 
applicableMemberTypes="Person" 
dataType="String" 
valueLength="256" 
multiValued="true"/> 


2. 拷貝下面文件: 
i. <WP_root>\config\work\wmm\bin\setenv.bat拷貝後的副本文件名爲mySetenv.bat(如果是Unix或者Linux平臺,則爲.sh文件); 
ii. <WP_root>\config\work\wmm\bin\attributeLoader.bat拷貝後的副本文件名爲myAttributeLoader.bat(如果是Unix或者Linux平臺,則爲.sh文件); 

3. 修改mySetenv.bat(如果是Unix或者Linux平臺,則爲.sh文件),增加或者修改下面行: 

set WP_root=E:\WebSphere\WPS 
set WAS_root=E:\WebSphere\WAS 
set SERVER_NAME=WebSphere_Portal 
set DB_PASSWORD=db2admin 
call %WAS_root%\bin\setupCmdLine.bat 
set CS_HOME=%WP_root%\cloudscape\ 

注意:請用於您的環境匹配的值替換上面的值,這裏給出的值只是例子。 

4. 修改myAttributeLoader.bat(如果是Unix或者Linux平臺,則爲.sh文件),修改下面的行: 

set TRACE_LOG=%WP_root%\config\work\wmm\bin\attrloader.log 
echo Usage: myAttributeLoader.bat "%WP_root%\wmm\wmmLAAttributes.xml" 

5. 打開一個命令窗口,進入<WP_root>\config\work\wmm\bin\目錄,並且執行: 

myAttributeLoader.bat <WP_root>\wmm\wmmLAAttributes.xml 

6. 確認在第4步中設置的attrLoader.log中有如下信息: 

...Loading attribute: newAttr 
attribute newAttr is created with id=10105 
memberType P is created for 10105 
LookAside Attribute: newAttr is loaded. 

如果執行的過程中報出如下錯誤信息: ...Loading attribute: uid 
COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0803N INSERT 語句、UPDATE 語句或由 DELETE 語句導致的外鍵更新中的一個或多個值無效,因爲由 "2" 標識的主鍵、唯一約束或者唯一索引將表 "DB2ADMIN.WMMLAATR"的那些列限制爲不能具有重複行。 SQLSTATE=23505 
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGenerator.java:275)
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGenerator.java:217)

表示數據庫中已經有這個屬性的配置,這時候可以重新啓動Portal Server.

7. 確認屬性已經加入WMMLAATR表中。 注意:WebSphere Portal6.0中XML Parser Factory在utils.jar中,在執行myAttributeLoader.bat的時候您可能會遇到 "ClassDefNotFoundError" 的錯誤,請用utils.jar替換attributeLoader.bat中xerces.jar 。另外,還有兩個jar文件必須加在 WMM_CP 的尾部,它們是 %WAS_root%\lib\bootstrap.jar 和 %WAS_root%\lib\emf.jar。 

8. 重新啓動Portal Server. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章