Привет, я новичок в Spring Batch и пытаюсь создать простую пакетную программу, которая переносит данные из файла csv в другой, одновременно преобразуя имя в верхний регистр. Чтение и обработка данных кажутся нормальными, но при записи возникает ошибка и Кажется, я не нашел проблемы
вот несколько скриншотов, результат и код
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)'
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
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
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 +
'}';
}
}
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;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... a-util-lis
NoSuchMethodError в Spring Batch: невозможно вызвать ItemWriter.write(java.util.List) ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
NoSuchMethodError в Spring Batch: невозможно вызвать ItemWriter.write(java.util.List)
Anonymous » » в форуме JAVA - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-