ton*_*nga 6 java spring jndi jta glassfish
我想在我的应用程序中使用 JTA 事务管理器。我正在使用 Spring 和 Glassfish。我想使用 JNDI 查找来获取JtaTransactionManager实例。我的 Spring bean 配置JtaTransactionManager设置如下:
<tx:annotation-driven transaction-manager="jtaTransactionManager"/>
<bean id="jtaTransactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName" value="java:comp/TransactionManager"/>
<property name="userTransactionName" value="java:comp/UserTransaction"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
但是当我运行程序时,却报错:
Caused by: org.springframework.transaction.TransactionSystemException: JTA UserTransaction is not available at JNDI location [java:comp/UserTransaction]; 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
Run Code Online (Sandbox Code Playgroud)
它与未初始化的 JNDI 上下文关联。因此,我添加了一个资源文件jndi.properties,其中添加了上面报告的缺失的初始上下文:
java.naming.factory.initial=???
Run Code Online (Sandbox Code Playgroud)
但问题是:我应该在上面的 JNDI 初始上下文字段中放入什么,才能通过 JNDI 查找获取 Glassfish 事务管理器?我搜索了许多来源,但没有找到这条信息。官方文件只说:
要访问 UserTransaction 实例,您可以使用 java:comp/UserTransaction JNDI 名称查找它,也可以使用 @Resource 注释注入它。
那么我应该如何在文件中为 JTA 事务管理器设置 JNDI 初始工厂jndi.properties,以便 和TransactionManager都UserTransaction可以通过 JNDI 查找注入到我的jtaTransactionManagerbean 中?谢谢。
| 归档时间: |
|
| 查看次数: |
2895 次 |
| 最近记录: |