简体   繁体   English

原因:java.lang.IllegalStateException:必须提供事务管理器

[英]Caused by: java.lang.IllegalStateException: A transaction manager must be provided

I am running a tasklet using Spring batch (4.1.4.RELEASE) and Spring jars (4.0.9.RELEASE) and getting the exception:我正在使用 Spring 批处理 (4.1.4.RELEASE) 和 Spring jars (4.0.9.RELEASE) 运行 tasklet 并获得异常:

**Caused by: java.lang.IllegalStateException: A transaction manager must be provided**
    at org.springframework.util.Assert.state(Assert.java:385) ~[spring-core-4.0.9.RELEASE.jar:4.0.9.RELEASE]
    at org.springframework.batch.core.step.tasklet.TaskletStep.afterPropertiesSet(TaskletStep.java:129) ~[spring-batch-core-4.1.4.RELEASE.jar:4.1.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1613) ~[spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1550) ~[spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE]
    ... 41 more

Below I have shown the session factory XML based configuration.下面我展示了基于 session 工厂 XML 的配置。

<bean id="sessionFactory" 
   class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:hibernate.cfg.xml" />
    <property name="hibernateProperties">
        <value>
            hibernate.show_sql=false
            hibernate.format_sql=false
            hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
            hibernate.query.substitutions=true 'Y', false 'N'
            hibernate.cache.use_second_level_cache=true
            hibernate.cache.provider_class=net.sf.ehcache.hibernate.SingletonEhCacheProvider
            hibernate.cache.use_query_cache=true
        </value>
    </property>
</bean> 


<bean id="jdbcTransactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
    lazy-init="true">
    <property name="dataSource" ref="dataSource" />
</bean>
<bean id="hibernatetransactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager"
    lazy-init="true">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

I have tried some changes in spring batch and spring core library versions but nothing is working and I am getting the same exception.我在 spring 批处理和 spring 核心库版本中尝试了一些更改,但没有任何效果,我得到了同样的异常。 Looking for some help here.在这里寻求帮助。 Thanks in advance提前致谢

The error happens in org.springframework.batch.core.step.tasklet.TaskletStep.afterPropertiesSet(TaskletStep.java:129) ~[spring-batch-core-4.1.4.RELEASE.jar:4.1.4.RELEASE] , which means you did not set a transaction manager on your tasklet.错误发生在org.springframework.batch.core.step.tasklet.TaskletStep.afterPropertiesSet(TaskletStep.java:129) ~[spring-batch-core-4.1.4.RELEASE.jar:4.1.4.RELEASE]意味着你没有在你的 tasklet 上设置事务管理器。

You did not share your tasklet's configuration, but you need to make sure a transaction manager is set on it, this is a mandatory property.您没有共享 tasklet 的配置,但您需要确保在其上设置了事务管理器,这是强制性属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 引起:java.lang.IllegalStateException - Caused by: java.lang.IllegalStateException Kafka java.lang.IllegalStateException:必须提供主题、主题模式或主题分区 - Kafka java.lang.IllegalStateException: topics, topicPattern, or topicPartitions must be provided java.lang.ExceptionInInitializerError Caused by: java.lang.IllegalStateException: The path to the driver executable must be set with Selenium and Java - java.lang.ExceptionInInitializerError Caused by: java.lang.IllegalStateException: The path to the driver executable must be set with Selenium and Java 引起:java.lang.IllegalStateException:包未安装? - Caused by: java.lang.IllegalStateException: package not installed? java.lang.IllegalStateException:事务未激活 - java.lang.IllegalStateException: transaction is not active java.lang.IllegalStateException:[TextView]不能为null - java.lang.IllegalStateException: [TextView] must not be null java.lang.IllegalStateException:必须连接GoogleApiClient - java.lang.IllegalStateException: GoogleApiClient must be connected 引起:java.lang.IllegalStateException:必须在请求聚合时指定有效的bucketing策略 - Caused by: java.lang.IllegalStateException: Must specify a valid bucketing strategy while requesting aggregation java.lang.RuntimeException:原因:java.lang.IllegalStateException: - java.lang.RuntimeException: Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: 将 spring 批处理更新到 4.1.1 后必须提供 ItemWriter - java.lang.IllegalStateException: ItemWriter must be provided after updating spring batch to 4.1.1
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM