我想在独立的应用程序中使用嵌入式德比的hibernate,我有一些问题:
如果你也可以建议我这个方法的一些好的教程,这将是更好的,提前谢谢.
我有几个会话bean,我已经编写了单元测试.我已经设置Maven在src/main/resources/META-INF目录中包含一个persistence.xml,该目录引用本地MySQL数据库用于开发目的.我在src/test/resources/META-INF目录中有另一个persistence.xml,它引用了嵌入式Derby数据库__default.测试部署到嵌入式GlassFish 3.1容器中.
但是,当我运行测试时,我收到以下错误:
java.lang.RuntimeException: javax.naming.NamingException: Lookup failed for 'jdbc/mylog'
Run Code Online (Sandbox Code Playgroud)
jdbc/mylog是主目录中的持久性单元引用的MySQL数据库.它显然忽略了测试目录中的持久性单元,但我不知道为什么.
据我所知,Maven正确地设置类路径,在类之前使用测试类,在实际目标/测试类/ META-INF目录中查看它显示它复制了正确的嵌入式Derby持久性单元.
[DEBUG] Test Classpath :
[DEBUG] C:\Users\Laurens\Documents\Projects\Mylog\target\test-classes
[DEBUG] C:\Users\Laurens\Documents\Projects\Mylog\target\classes
[DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\eclipselink\2.2.0\eclipselink-2.2.0.jar
[DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\javax.persistence\2.0.3\javax.persistence-2.0.3.jar
[DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\org.eclipse.persistence.jpa.modelgen.processor\2.2.0\org.eclipse.persistence.jpa.modelgen.processor-2.2.0.jar
[DEBUG] C:\Users\Laurens\.m2\repository\org\glassfish\extras\glassfish-embedded-all\3.1\glassfish-embedded-all-3.1.jar
[DEBUG] C:\Users\Laurens\.m2\repository\javax\javaee-web-api\6.0\javaee-web-api-6.0.jar
[DEBUG] C:\Users\Laurens\.m2\repository\junit\junit\4.8.1\junit-4.8.1.jar
Run Code Online (Sandbox Code Playgroud)
关于如何让GlassFish使用正确的持久性单元的任何暗示非常感谢!谢谢!