gpt4 book ai didi

java - 命名异常 : Cannot create resource instance for jta. 用户事务

转载 作者:行者123 更新时间:2023-11-30 03:44:20 24 4
gpt4 key购买 nike

我正在使用在 Tomcat 应用服务器上运行的 Java 程序,该服务器连接到 Teradata 数据库,该数据库利用 hibernate 中设置的 UserTransactionsession-factory连接到数据源的配置

<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="connection.datasource">java:comp/env/My_DB</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
....

以及获取事务上下文的方法

public UserTransaction getTransactionContext()
throws Exception
{
if (this.ut == null) {
ut = (UserTransaction)new InitialContext().lookup("java:comp/UserTransaction");
}
return ut;
}

但是,InitialContextlookup("java:comp/UserTransaction"); 处失败并返回:

03:27:37,530 ERROR [someServlet:555] Error in someMethod
javax.naming.NamingException: Cannot create resource instance
at org.apache.naming.factory.ResourceEnvFactory.getObjectInstance(ResourceEnvFactory.java:117)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
at org.apache.naming.NamingContext.lookup(NamingContext.java:843)
at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
at org.apache.naming.NamingContext.lookup(NamingContext.java:831)
at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
at org.apache.naming.NamingContext.lookup(NamingContext.java:831)
at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:158)

我对使用jta.UserTransaction很陌生;数据源映射按其应有的方式工作,但是我似乎无法返回 UserTransaction - 命名约定本身在代码和 session 工厂之间匹配。任何人都可以从高(或低)角度提供一些关于为什么失败的可能性吗?如果这个问题太模糊,我可以提供更多信息。

最佳答案

Tomcat 是一个 Web 服务器,而不是符合 JTA 的应用程序服务器(例如 JBoss、WebLogic、Glassfish)。

如果您想使用 JTA,您需要使用 JTA 独立实现,例如:

嵌入独立的事务管理器将使您能够访问通过 JNDI 公开 UserTransactions 的 JTA 事务管理器。

关于java - 命名异常 : Cannot create resource instance for jta. 用户事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26112494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com