spring - 批处理步骤的 ItemWriter 部分出现不兼容类型错误的问题
问题描述
我正在尝试向我的 Spring Batch 作业添加一个新步骤,该步骤将创建一个 XLS 文件。我有一个阅读器,它将输出放到一个名为 CLUCReportDTO 的 bean 中。我正在研究 itemWriter 的蓝图来创建 CSV 文件。这是代码
A8SPACH2 类内部
@Autowired
private ACH2WriteProcessor clucWriter;
public Step jobStep020() {
return stepBuilderFactory.get(JOB.ACH2_BATCH_LOAD.getProfileName() +
".js020")
.listener(promotionListener)
.<CLUCReportDTO, String> chunk(100)
.reader(lockboxWirePostService.getUnappliedJes())
.writer(clucWriter)
.listener(listener)
.build();
}
在 ACH2WriteProcessor 类内部
public class ACH2WriteProcessor implements ItemWriter<CLUCReportDTO>{
@Override
public void write(List<? extends CLUCReportDTO> items) throws Exception
{
}
}
我在 A8SPACH2 中收到以下错误:无法转换为 ItemWriter< ?超级字符串>。我在导致此错误的 A8SPACH2 或 ACH2WriteProcessor 的设置中缺少什么。
谢谢
解决方案
根据您的配置 ( .<CLUCReportDTO, String> chunk(100)
),项目编写器应该编写类型的项目String
,但您声明它编写类型CLUCReportDTO
( public class ACH2WriteProcessor implements ItemWriter<CLUCReportDTO>
) 的项目。
你的项目作者应该这样声明:
public class ACH2WriteProcessor implements ItemWriter<String>{
@Override
public void write(List<? extends String> items) throws Exception {
}
}
推荐阅读
- c# - 重置后球轨迹完全相同(Unity)
- reactjs - react-hook-form 触发后如何删除 onSubmit 数据负载?
- python - “NoneType”对象没有“发送”属性
- javascript - 如何在 JavaScript 中跟踪鼠标移动
- javascript - 有没有办法在 javascript 中使用 keras.pad_sequences?
- android - 其他一些函数中的 mMap.clear 正在从公共 void onMapLongClick(LatLng latLng) 中删除标记?
- reactjs - 在反应中重用顺风组件的简单方法
- machine-learning - X 上具有较大值的线性回归给出了奇怪的结果
- numpy - How to Plot in 3D Principal Component Analysis Visualizations, using the fast PCA script from this answer
- javascript - Three.js OBJ 和 MTL Loaders 不循环调用