2010-03-04 55 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实施软件包,组件等)。