当前位置: 首页 > 知识库问答 >
问题:

用户事务:javax。命名。迁移到WildFly 8.2.0和Java 8后的NameNotFoundException

邹英悟
2023-03-14

迁移到Java8和WildFly 8.2.0后,我在每个事务中都收到此错误

用户事务:javax。命名。NameNotFoundException:UserTransaction[根异常为java.lang.IllegalStateException:JBAS014237:仅允许具有bean管理事务划分的会话和消息驱动bean访问UserTransaction]。jboss。像命名。基于服务的名称存储。在org上查找(ServiceBasedNamingStore.java:140)。jboss。像命名。基于服务的名称存储。在org上查找(ServiceBasedNamingStore.java:81)。jboss。像命名。NamingContext。在org上查找(NamingContext.java:202)。jboss。像命名。NamingContext。在org上查找(NamingContext.java:179)。jboss。像命名。InitialContext$DefaultInitialContext。在org上查找(InitialContext.java:235)。jboss。像命名。NamingContext。在org上查找(NamingContext.java:188)。jboss。像命名。NamingContext。在javax上查找(NamingContext.java:184)。命名。InitialContext。在javax上查找(InitialContext.java:417)[rt.jar:1.8.0\u 45]。命名。InitialContext。查找(InitialContext.java:417)[rt.jar:1.8.0\u 45]

Bean有注释@TransactionManagement(TransactionManagementType. BEAN)

这是异常发生的地方:

final javax.naming.Context tmpNamingContext = new javax.naming.InitialContext();
                    userTransaction = ((UserTransaction) tmpNamingContext.lookup("java:jboss/UserTransaction"));

我不知道这里发生了什么,也找不到任何好的解决办法。

请帮助。

共有1个答案

酆鸿彩
2023-03-14

使用注释@Resources而不是通过JNDI Name获取UserTransaction是解决方案。UserTransaction在WildFly 8.2.0中不再存在,在JBoss中它已经设置好了。

这解决了问题。

 类似资料:
  • 我有一个带有如下所示的文件: 我们过去常常使用注释来读取这些值,因此字符串与“子设置”的前缀相同。 我的任务是清理这个应用程序,我想使用与属性文件内容相匹配的大型配置对象来使用,以使代码更易于使用。 我认为configuration类的结构应该是这样的(Kotlin示例,但这并不重要): 请注意,也用于决定注册哪个bean: 如何设置此配置(无需重写以消除此应用程序所有实例的命名问题)?

  • 我正在运行一个Spring boot 2.4.3应用程序,我有一个支持事务的mongob 4集群(我使用run-rs在本地运行它)。我也在使用Spring data mongob。我正在尝试为db迁移集成mongock(最新版本-4.3.8),但我面临一个问题,我无法解决。正如我们所知,最新版本的mongock默认使用事务。我有以下更改集,它只是为我的一个实体创建了一个mongob集合。 运行应用

  • 我需要将phpBB3用户迁移到Drupal7。用户必须能够使用他们的phpBB用户名/密码组合在Drupal中进行身份验证。 有没有办法把密码翻译成Drupal7格式?

  • 问题内容: 迁移到Java 8和WildFly 8.2.0之后,我在每个事务中都收到此错误 UserTransaction:javax.naming.NameNotFoundException:UserTransaction [Root异常是java.lang.IllegalStateException:JBAS014237:仅具有Bean管理的事务分界的会话和消息驱动的Bean才可以访问User

  • 我们正在从传统的单一应用程序迁移到微服务体系结构。我们使用CQRS和事件源模式以及消息代理(rabbitmq)作为通信机制。现在我们面临着一个挑战,即如何将旧数据库转换为新的体系结构,以及如何使用事件源进行这些转换?假设旧数据库没有事件,我们可以在不创建事件的情况下进行数据转换吗?在事件源模式中,旧数据库数据的起点是什么?