2010-03-04 52 views
0

我們正在使用OSGI並希望編寫JUnit Systemtest。我們有一個組件,它使用Java持久性API(JPA)與數據庫進行交互。當我們啓動測試時,我們收到錯誤消息,數據庫組件無法激活。使用Osgi進行Junit測試不會啓動Jpa組件

我們認爲,這個錯誤發生了,因爲jpa沒有找到persistence.xml。但我們試圖在我們能想到的所有可能的位置複製文件。每次發生同樣的錯誤。有人知道解決方案嗎?

OSGi的> 10:03:49.461 [分量解析主題] DEBUG fdssystem.test.SystemTest - 開始 ERROR 22 [SCR]無法激活實例...

回答

0

爲EntityManager的命名總線沒有持久性提供者。數據庫 因此CLASSPATH中沒有JPA實現。顯然取決於是否指定「bus.database」只在特定的JPA實現(提供者)上運行。

+0

你的意思是什麼CLASSPATH?我們必須輸入哪些文件? 感謝您的快速回答 – 2010-03-04 11:47:14

+0

Java應用程序中只有一個CLASSPATH。好的,OSGi env對類加載有特殊的處理,但無論如何。什麼罐子?你選擇使用的Jpa實現? DataNucleus,EclipseLink,Hibernate,OpenJPA等等。 – DataNucleus 2010-03-04 12:26:42

0

嘗試使用Pax Exam來實施您的系統測試。您必須爲您的測試定義所有必需的捆綁軟件(例如,JPA實施軟件包,組件等)。