当前位置: 首页 > 知识库问答 >
问题:

StaxEventItemReader中的

蔡晨
2023-03-14
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EmployeeDTO {

    private Long id;
    private String firstName;
    private String surname;
    private String email;
    private Integer age;
}
public final class XMLReader<T> extends StaxEventItemReader<T> implements ClosableItemReader<T> {
    public XMLReader(Map<String, Object> parameters) {

        setResource(new FileSystemResource((File) parameters.get(RESOURCE)));
        setFragmentRootElementName((String) parameters.get(ROOT_TAG));

        Map<String, String> aliases = (Map<String, String>) parameters.get(ALIASES_MAP);
        XStreamMarshaller marshaller = new XStreamMarshaller();
        marshaller.setAliases(aliases);
        setUnmarshaller(marshaller);
        setStrict(false);
        open(new ExecutionContext());
    }
public class EmployeeReader implements ItemReader<EmployeeDTO> {


    private final JobImportReaderFactory jobImportReaderFactory;
    private ClosableItemReader<EmployeeDTO> itemReader;

    public EmployeeReader(JobImportReaderFactory jobImportReaderFactory, JobFileRepository jobFileRepository) {
        this.jobImportReaderFactory = jobImportReaderFactory;
        this.jobFileRepository = jobFileRepository;
    }

    @BeforeStep
    public void setup() throws IOException {
        // this factory gives me XMLReader instance
        itemReader = jobImportReaderFactory.getItemReader(jobEnum, readerParameters, EmployeeDTO.class);

    }

    @Override
    public EmployeeDTO read() throws Exception {
        log.debug("read()");
        return itemReader.read();
    }
}

java.lang.ClassCastException:com.kk.tutorial.domain.dtos.employeedTo类不能强制转换为com.kk.tutorial.domain.dtos.employeedTo类(com.kk.tutorial.domain.dtos.employeedTo位于加载器'app'的未命名模块中;com.kk.tutorial.domain.dtos.employeedTo位于加载器org.springframework.boot.devtools.restart.classloader@24eb3739)的未

尝试在EmployeeDTO中实现Serializable,但它不起作用。我知道这是ClassLoader的问题,但我不知道如何处理ClassLoader,也不知道如何将ItemReader.read()中的值case到另一个ClassLoader中的EmployeeDTO。你知道怎么修理铸件吗?

共有1个答案

鲁华皓
2023-03-14

从pom.xml中删除spring-boot-devtools依赖项将修复该问题。

更新

devtools使用了一个单独的类加载程序,这导致了给定的问题。

 类似资料:
  • 我有一个如下定义的spring批处理作业。 contentItemReader如下所示。 一切都很好,除了它比我想要的要慢一点。我知道这个阅读器不是线程安全的。所以我不认为我可以向任务小工具添加一个任务执行器。ContentItems 不相互依赖,因此我想将数据并行馈送到处理器中。项目处理可能相当耗时。因此,尽管我知道我不能拥有多线程读取器,但我应该能够进行多线程项目处理。 ItemWriter也

  • 6.7.1 StaxEventItemReader StaxEventItemReader 提供了从XML输入流进行记录处理的典型设置。 首先,我们来看一下 StaxEventItemReader能处理的一组XML记录。 <?xml version="1.0" encoding="UTF-8"?> <records> <trade xmlns="http://springframework

  • 我已经为android Studio创建了一个webview应用程序。但没有加载web URL。错误为NET::ERR_ACCESS_DENIED。有谁能帮忙吗

  • 我使用子JPanel构造JScrollPane,然后尝试将JScrollPane添加到父JPanel中,希望有一个可滚动的自定义JPanel。 我有一个大的细白线前面的所有我的组件,他们是没有滚动。有什么想法吗?

  • 我有一个问题,找出我的源代码中的错误。 有什么办法可以解决它吗? 我的代码中抛出了“ArrayIndexOutOfBoundsException”,但我无法找到它的位置。 android studio中的logcat:

  • RISC-V 与中断相关的寄存器和指令 [info] 回顾:RISC-V 中的机器态(Machine Mode,机器模式,M 模式) 是 RISC-V 中的最高权限模式,一些底层操作的指令只能由机器态进行使用。 是所有标准 RISC-V 处理器都必须实现的模式。 默认所有中断实际上是交给机器态处理的,但是为了实现更多功能,机器态会将某些中断交由内核态处理。这些异常也正是我们编写操作系统所需要实现的