Hallo,
ich bin neu in Spring bzw. Spring Batch und stoße leider schon recht früh auf Probleme, bei denen ich nicht weiterkomme.
Ziel ist es, dass je nach Bedingung nur bestimmte Steps nachfolgen sollen. Testweise habe ich erstmal drei Steps definiert. Zunächst soll Step 1 laufen. Sollte Step 1 erfolgreich durchlaufen (also es kommt zu keiner Fehlermeldung), soll Step3 gestartet werden. Ansonsten Step2.
Beim Ausführen des Jobs bekomme ich die Meldung:
"Failed to import bean definition from URL location [....JobConfig] ....The element [des] is unreachable
-
Ich weiß leider auch noch nicht ganz, wie ich überprüfe, ob Step1 korrekt durchgelaufen ist oder ob es zu einer bestimmten Fehlermeldung kam.
Über Hilfe wäre ich echt dankbar!
Mein Aufbau sieht so aus:
JobConfig
<job id=„testjob“
<step id=„step1>
<tasklet ref=„xyz.step1>
</step>
<decision id=“des“ decider=“des“>
<next on=“FAILED“ to =„step2“ />
<next on=“COMPLETE“ to=„step3“ />
</decision>
<step id=„step2>
<tasklet ref=„xyz.step2>
</step>
<step id=„step3>
<tasklet ref=„xyz.step3>
</step>
<bean id=“des“ class=„xyz.TaskletConfig />
Java:
@Configuration
Public class TaskletConfig implements JobExecutionDecider {
@Bean(name=“xyz.step1“)
@Scope(„step1“)
Tasklet testTasklet() {
return new Tasklet1();
}
@Bean(name=“xyz.step2“)
@Scope(„step2“)
Tasklet testTasklet2() {
return new Tasklet2();
}
@Bean(name=“xyz.step3“)
@Scope(„step3“)
Tasklet testTasklet3() {
return new Tasklet3();
}
@Override
Public FlowExecutionStatus decide(final JobExecution arg0, final StepExecution) {
If (step1 erfolgreich durchgelaufen) {
// Weiter mit step3
else (
// Weiter mit step2
}
TestTasklet1:
Public class TestTasklet1 implements Tasklet {
public TestTasklet1() {
}
@Override
Public RepeatStatus execute (final StepContribution stepContribution, final ChunkContext chunkContext) throws Exception {
System.out.println(„Erfolgreich“);
return RepeatStatus.FINISHED;
}