- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每次启动批处理作业时,它都会引发IllegalStateException并说它在JobRepository中检测到事务。我做了一些研究,并删除了代码中的所有@Transactional
注释。
我使用Grails Spring Batch插件,可以找到here,并且使用Grails 2.3.11和Java8。我的代码如下所示:
SimpleJobBatchConfig.groovy
beans {
xmlns batch:"http://www.springframework.org/schema/batch"
batch.job(id: 'simpleJob') {
batch.step(id: 'printStep') {
batch.tasklet(ref: 'printHelloWorld')
}
}
printHelloWorld(SimpleJobTasklet) { bean ->
bean.autowire = 'byName'
}
}
class BatchelorController {
def batchTestService
def index() {
}
def launchSimpleJob() {
batchTestService.launchSimpleJob()
}
}
class BatchTestService {
def springBatchService
def launchSimpleJob() {
springBatchService.launch("simpleJob")
}
}
class SimpleJobTasklet implements Tasklet {
@Override
RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {
println("Hello World!")
return RepeatStatus.FINISHED
}
}
最佳答案
默认情况下,Grails服务是事务性的。您可以使用@Transactional
自定义整个类或每个方法的设置,但如果没有注释,则与具有类作用域的Spring @Transactional
注释相同。
要使您的服务不可交易,请添加static transactional = false
,例如
class BatchTestService {
static transactional = false
def springBatchService
...
}
}
关于grails - JobRepository中检测到的现有事务-带有Grails插件的Spring Batch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32308793/
我正在使用 Spring Boot 测试 Spring Batch。我需要定义在 Oracle 数据库上工作的作业,但我不想在此数据库中保存作业和步骤状态。 我在文档中阅读了我可以将内存存储库与 Ma
我需要在 jbatch 中配置作业存储库,因为我需要设置自定义数据源。我无法理解如何对其 xml 进行编码以及必须将其放在项目中的位置。 我认为我需要的代码应该与此类似(但这是我无法使用的 Spri
来自this article我们可以了解到,Spring-Batch 在某些 SQL 存储库中保存作业的状态。 来自 this article我们可以了解到,JobRepository 的位置是可以配
我正在开发 Spring Batch 企业应用程序。该应用程序的目标是将记录写入我工作的公司的旧数据库中的表中。该数据库确实是一个大男孩,它将业务和客户信息存储在具有数亿条记录的大量模式和表中,还有数
我正在使用 Java 注释创建一个 Spring Batch 应用程序。我有 @EnableBatchProcessing 注释,所以我没有明确定义 JobRepository 或 JobReposi
谁能帮我找出以下异常的解决方案,我想我只是不太了解事务传播机制,这阻碍了我理解下面显示的异常消息的真正含义,所以请帮助我了解整个事情,真的非常感谢你! java.lang.IllegalStateEx
我正在尝试这个并得到异常: java.lang.IllegalStateException:在 JobRepository 中检测到现有事务。请解决此问题并重试(例如,从客户端删除@Transacti
我使用 spring-batch 实现了非常简单的批处理作业。我只有一个步骤,其中有一个 Tasklet,如下所示: (stepContribution, chunkContext) -> {
我有一个运行批处理作业的 Junit 测试用例。以前当我有 Spring Batch 版本 2.1.2 时它可以工作。但是一旦我升级到版本 4.1.1,我就会遇到异常 java.lang.Illega
我是一名优秀的程序员,十分优秀!