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

Wildfly:使用Spring@Autowired进行用户事务处理

白光耀
2023-03-14

在我从Jboss AS5迁移到Wildfly9应用程序的过程中,我试图在Wildfly:javax.transaction.api中加载一个模块。看Wildfly文章如何在WF8中加载模块,它说您可能不需要显式加载一些模块,因为它们是隐式加载的。

 @Autowired
private UserTransaction transaction;

然后我在applictionContext.xml中定义它

<jee:jndi-lookup id="userTransaction" jndi-name="UserTransaction" expected-type="javax.transaction.UserTransaction"/>

在jboss-deployment-structure.xml中

 <module name="javax.api"/>
  <module name="javax.transaction.api"/>

但是我得到了这个错误:

Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: 
private javax.transaction.UserTransaction com.mycomp.myapp.EventSender.transaction; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type [javax.transaction.UserTransaction] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

谢谢你的帮助。

共有1个答案

欧阳昊焱
2023-03-14

错误在StackTrace中:

'userTransaction': Invocation of init method failed; nested exception is  javax.naming.NameNotFoundException: UserTransaction

由于JNDI查找失败,无法创建bean。您的应用程序服务器上没有名为“UserTransaction”的资源可用。

 类似资料:
  • 上下文2。XML 这会导致将抽象类的transactionManager属性设置为服务器启动期间创建的最后一个注释事务方面bean'org.springframework.transaction.interceptor.TransactionAspectSupport。 因此,如果实例化的最后一个bean是dataSource1,则在dataSource1上创建事务,否则在DataSource2上

  • 我发现实际上是Spring,我能够设置一些工作。现在,我想使用Hibernate/JPA将导入的数据保存到数据库中,但我总是出现这样的错误: 我明白问题出在交易上。以下是和的spring java配置: 这是导致异常的代码: 有什么解决这个问题的想法吗? [编辑]我也放入了作业定义和步骤定义。我所有的Spring配置都是用Java编写的。 任何人都可以给出更多的见解,如何在spring Batch

  • 问题内容: Spring框架在多大程度上适用于事务处理?我读过《 Spring In Action》一书中的建议,并提供了一些示例,这些示例创建了不用担心会话和事务管理的DAO方法,只需通过以XML设置会话工厂和事务模板,然后将它们连接到DAO中即可。另一方面,SpringSource.org的文档建议需要大量的XML和/或注释才能实现此目的。 真相是什么,我按照以下方式获取代码的最简单方法是什么

  • 我们使用JPA(Hibernate4)和Spring4管理JTA事务。由于应用程序的某些部分也使用JDBC来访问数据库,因此我们需要确保JDBC和JPA加入同一个事务,以查看提交之前另一个事务发生了什么变化。 您可以在GitHub https://GitHub.com/abenneke/sandbox/tree/master/spring-hibernate4-transaction上找到这些问题

  • 下面是一个使用JdbcTemplate的示例。我的问题是,由于runTimeException,doMultipleCalls()在第3步失败,一切是否都会回滚。我只有对多个调用的事务注释,而没有对其他调用的注释。所有人是否共享同一个事务会话?。如果没有,那么如何跨多个服务器传递相同的事务会话?

  • 为什么测试用例需要@Transactional,其功能将在dao层中进行更新(JPA存储库),比如 当测试在没有@Transaction注释的情况下运行时,它会在行中给出以下异常 组织。springframework。刀。InvalidDataAccessApiUsageException:执行更新/删除查询;嵌套的异常是javax。坚持不懈TransactionRequiredException