NoSuchMethodError in Spring Batch: ItemWriter.write(java.util.List) kann nicht aufgerufen werdenJava

Java-Forum
Guest
 NoSuchMethodError in Spring Batch: ItemWriter.write(java.util.List) kann nicht aufgerufen werden

Post by Guest »

Hallo, ich bin neu bei Spring Batch und versuche, ein einfaches Batch-Programm zu erstellen, das Daten von einer CSV-Datei in eine andere überträgt und dabei den Namen in Großbuchstaben umwandelt. Das Lesen und Verarbeiten der Daten scheint in Ordnung zu sein, aber beim Schreiben bekomme ich einen Fehler und Ich scheine das Problem nicht zu finden
Hier sind einige Screenshots, Ergebnisse und Code

Code: Select all

2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 1
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=1, name='John Smith', age=28}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'John Smith' to 'JOHN SMITH'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=1, name='JOHN SMITH', age=28}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 2
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=2, name='Sarah Johnson', age=34}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'Sarah Johnson' to 'SARAH JOHNSON'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=2, name='SARAH JOHNSON', age=34}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 3
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=3, name='Michael Brown', age=45}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'Michael Brown' to 'MICHAEL BROWN'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=3, name='MICHAEL BROWN', age=45}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 4
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=4, name='Emily Davis', age=31}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'Emily Davis' to 'EMILY DAVIS'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=4, name='EMILY DAVIS', age=31}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 5
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=5, name='David Wilson', age=29}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'David Wilson' to 'DAVID WILSON'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=5, name='DAVID WILSON', age=29}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 6
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=6, name='Lisa Anderson', age=42}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'Lisa Anderson' to 'LISA ANDERSON'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=6, name='LISA ANDERSON', age=42}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 7
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=7, name='James Taylor', age=38}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'James Taylor' to 'JAMES TAYLOR'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=7, name='JAMES TAYLOR', age=38}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 8
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=8, name='Jessica White', age=27}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'Jessica White' to 'JESSICA WHITE'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=8, name='JESSICA WHITE', age=27}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 9
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=9, name='Robert Martin', age=51}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'Robert Martin' to 'ROBERT MARTIN'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person: Person{id=9, name='ROBERT MARTIN', age=51}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Starting to process person with ID: 10
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Input Person: Person{id=10, name='Jennifer Lee', age=33}
2025-01-16 03:39:18 [main] INFO  Model.PersonItemProcessor - Transformed name from 'Jennifer Lee' to 'JENNIFER LEE'
2025-01-16 03:39:18 [main] DEBUG Model.PersonItemProcessor - Transformed Person:  Person{id=10, name='JENNIFER LEE', age=33}
2025-01-16 03:39:18 [main] DEBUG o.s.b.core.step.tasklet.TaskletStep - Applying contribution: [StepContribution: read=10, written=0, filtered=0, readSkips=0, writeSkips=0, processSkips=0, exitStatus=EXECUTING]
2025-01-16 03:39:18 [main] DEBUG o.s.b.core.step.tasklet.TaskletStep - Rollback for Error: java.lang.NoSuchMethodError: 'void org.springframework.batch.item.ItemWriter.write(java.util.List)'
2025-01-16 03:39:18 [main] DEBUG o.s.t.support.TransactionTemplate - Initiating transaction rollback on application exception
java.lang.NoSuchMethodError: 'void org.springframework.batch.item.ItemWriter.write(java.util.List)'

Code: Select all


org.springframework.boot
spring-boot-starter-batch


org.springframework.boot
spring-boot-starter-web


org.postgresql
postgresql
runtime


org.springframework.boot
spring-boot-starter-test
test


org.springframework.batch
spring-batch-core
4.3.8



org.springframework.batch
spring-batch-test
test


Code: Select all

id,name,age
1,John Smith,28
2,Sarah Johnson,34
3,Michael Brown,45
4,Emily Davis,31
5,David Wilson,29
6,Lisa Anderson,42
7,James Taylor,38
8,Jessica White,27
9,Robert Martin,51
10,Jennifer Lee,33
11,William Clark,44
12,Elizabeth Green,36
13,Thomas Baker,39
14,Margaret Hall,48
15,Christopher King,32
16,Patricia Wright,41
17,Joseph Scott,37
18,Susan Adams,46
19,Kevin Miller,30
20,Michelle Turner,35

Code: Select all

package Model;

public class Person {
private int id;
private String name;
private int age;

public Person() {
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}

Code: Select all

package Model;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.batch.item.ItemProcessor;

public class PersonItemProcessor implements ItemProcessor  {
private static final Logger logger = LoggerFactory.getLogger(PersonItemProcessor.class);

@Override
public Person process(Person person) throws Exception {
if (person == null) {
logger.error("Received null person object");
return null;
}

try {

logger.info("Starting to process person with ID: {}", person.getId());
logger.debug("Input Person: {}", person);

if (person.getName() == null || person.getName().trim().isEmpty()) {
logger.warn("Person with ID {} has null or empty name", person.getId());
return person;
}

String originalName = person.getName();
person.setName(originalName.toUpperCase());

logger.info("Transformed name from '{}' to '{}'", originalName, person.getName());
logger.debug("Transformed Person: {}", person);

return person;
} catch (Exception e) {
logger.error("Error processing person with ID: " + person.getId(), e);
throw e;
}
}
}

Code: Select all








































































Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post