2014-01-17 63 views
1

多米諾9.0.1版 設計師9.0.1版的XPage Java類引起com.ibm.designer.domino.napi.NotesAPIException

(我改變了堆棧跟蹤的文本稍微以客戶出來的圖片)

每隔一段時間,在發展環境一段時間,我已經越來越在服務器日誌以下堆​​棧跟蹤:

> 7.01.2014 17:01:13 HTTP JVM: com.ibm.designer.domino.napi.NotesAPIException: File access error: 
> Error while getting information on item $FileData 
> 17.01.2014 17:01:13 HTTP JVM: Note item not found. For more detailed information, please consult error-log-0.xml located in 
> c:/Domino/data/domino/workspace/logs 
> 17.01.2014 17:01:13 HTTP JVM: Managedbean DatabaseController could not be created Can't instantiate class: 
> 'de.holistic.cust.epr.EprDatabaseController'.. 
> java.lang.ClassNotFoundException: class 
> java.lang.ClassNotFoundException: 
> de.holistic.cust.epr.EprDatabaseController. For more de 
> 17.01.2014 17:01:13 HTTP JVM: ailed information, please consult error-log-0.xml located in c:/Domino/data/domino/workspace/logs 
> 17.01.2014 17:01:13 HTTP JVM: com.ibm.xsp.webapp.FacesServlet$ExtendedServletException: 
> com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing 
> JavaScript computed expression 

從XML日誌文件中的以下不顯示任何的承諾的額外信息

com.ibm.designer.domino.napi.NotesAPIException: File access error: Error while getting information on item $FileData Note item not found 

此異常有時還會與SecurityException相結合。
1.辭職數據庫沒有任何作用
2.更改類和xpages並重新保存有時會解決問題一次,或者它只是我花費的時間來嘗試。
3.重新啓動HTTP任務/服務器從來沒有區別
4.清潔和建築不做一件事。

在谷歌搜索這個問題後,有些人在將它們的java類存儲在「普通設計器」透視圖的java區域時遇到了這個問題。我在自定義源文件夾「WebContent/WEB-INF/src」中有我的java代碼。

是否有其他人有/有這個問題?如果是這樣,怎麼才能最好地解決?這是XPage實現中的錯誤嗎?只有當源代碼需要編譯時,我纔會在jar文件中遇到java類的問題。儘管可以使用jar文件而不是原始類來提供應用程序,但在開發環境中是不切實際的。任何幫助將不勝感激。

+1

我設法通過更改堆棧跟蹤中列出的類的名稱來臨時更正問題,然後再將其命名回來。這對我來說似乎是一種樂隊助手解決方案,並不能真正糾正原因。有什麼辦法可以防止這種情況再次發生?我做錯了什麼導致這個錯誤? – Greg

+0

這裏要做的最好的事情是獲得IBM支持來檢查此查詢。 –

回答

0

已編譯的java類存儲在保存java源的設計說明的$ FileData項目中。所以這個錯誤意味着編譯的代碼會丟失,而不是由服務器生成。以下是我認爲可能有助於調試此問題的內容。

  1. 在設計器中打開項目視圖,修改過濾器以顯示Java類以檢查它們是否可用。
  2. 檢查Java源文件夾是否在構建路徑上。
  3. 檢查自動重建選項。
  4. 如果開發是在本地,並通過設計刷新或替換部署到服務器。檢查在這個過程中類是否丟失。
+1

我想添加第5點。確保您等待足夠長的時間,通過記下設計器右下角的非常小的進度圖標來構建複雜的應用程序。這個特定的應用程序正在5分鐘內建立(不要問我爲什麼)。因爲我沒有等待足夠長的時間,本地java文件不可用於導致異常的瀏覽器。 – Greg

+0

@Greg該建築物由許多進步組成。例如恢復元數據,建立,刷新,初始化。與經典筆記應用程序相比,主要區別在於檢索所有設計元素並編譯java和ls。如果應用程序所在的服務器不像本地服務器那麼快(網絡),則通常需要幾分鐘的時間才能構建。如果服務器速度很慢,那麼這座建築將會永遠存在。所以,如果是這樣的話,請在本地開發和構建您的應用並將其部署到服務器。 –