我有一个 JPA 应用程序,它在 persistence.xml 中指定了 JTA 事务。无论出于何种原因,我发现在使用 JTA 时,您还必须在 persistence.xml 中指定一个 JNDI 数据源。这很好,除非您尝试在容器外进行集成测试并且 JNDI 不可用。
我的问题是:
a) 无论如何将 jdbc 数据源注入我的 JTA 事务管理器?b) 如果没有,在集成测试期间如何处理 JNDI 查找?
编辑:启动集成测试时出现的错误是:
Caused by: org.springframework.......DataSourceLookupFailureException:
Failed to look up JNDI DataSource with name 'java:comp/env/jdbc/myAppDataSource';
nested exception is javax.naming.NoInitialContextException: Need to specify
class name in environment or system property, or as an applet parameter,
or in an application resource file: java.naming.factory.initial