Spring integration SQS的Spring集成划分
我正在尝试设置spring集成分区 我正在使用stack spring批处理和集成以及AWS SQSSpring integration SQS的Spring集成划分,spring-integration,spring-batch,amazon-sqs,Spring Integration,Spring Batch,Amazon Sqs,我正在尝试设置spring集成分区 我正在使用stack spring批处理和集成以及AWS SQS 主-网格大小的完整分区 主-将对象(StepExecutionRequest)传输到JSON (@Transformer ObjectToJsonTransformer) 主-发送SQS 从属-接收SQS 从-将JSON传输到对象(StepExecutionRequest) (@Transformer-jsontobjecttransformer) 然后,出现异常: 2018-06-22 17:
2018-06-22 17:40:55.578 ERROR 33730 --- [ask-scheduler-1] o.s.integration.handler.LoggingHandler : org.springframework.integration.transformer.MessageTransformationException: failed to transform message; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `org.springframework.batch.integration.partition.StepExecutionRequest` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
也就是说,StepExecutionRequest
无法反序列化,因为stepExecutionReqest
不是setter
如何解决这个问题?
StepExecutionRequest
不适合使用现成的JSON进行序列化;如错误所示,它没有默认构造函数。改用Java序列化,或者编写一个定制的jacksonJsonDeserializer
是时候改进Spring批处理了吗?我已经就此事提出了一个JIRA:请看。我决定制作定制Transformer(JsonToStepExecutionRequestTransformer by JSONTObObjectTransformer)谢谢@Gary Russell