我有一个在 Glassfish v3 中运行的 Web 应用程序。它是通过 JSF v2 和 JPA 实现的(因此有一个 persistence.xml 声明为 JTA 数据源)。
如果我尝试使用 JUnit 测试我的存储库,它会失败查找并给我这个错误:
javax.naming.NamingException: Lookup failed for 'java:comp/env/persistence/em' in SerialContext[myEnv=
java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl}
[Root exception is javax.naming.NamingException: Invocation exception: Got null ComponentInvocation ]
它似乎要求我无法提供的 transaction-type="RESOURCE_LOCAL",因为它与 Glassfish 的 transaction-type="JTA" 冲突。
所以,我想问的是,是否有可能找到一种方法来运行 JUnit,而无需 [强烈] 更改我的 webapp 的配置。谢谢, 安