我正在使用Camel版本2.20和带有Spring Boot的文件组件。我的要求是在进一步处理文件之前验证文件的MD5校验和(使用jpa组件将数据持久存储在数据库中)。我在单独的属性文件中获得了MD5校验和值。
我添加了validate方法,该方法根据计算的校验和是否与从属性文件中获取的校验和相匹配,返回true或false。但是,当我使用模拟消息生成器测试此路由时,校验和总是不同的。我正在使用producer.sendBody(Object o)API发送数据。我想念什么?
答案 0 :(得分:0)
您可以通过以下方式计算嵌入消息(在本例中为您的文件)的md5sum值:
<from uri="file:/some/full/path/directory"/>
<setHeader headerName="md5sum">
<groovy>
import java.security.MessageDigest
def digest = MessageDigest.getInstance("MD5")
def contentMD5 = new
BigInteger(1,digest.digest(request.body.getBytes())).toString(16).padLeft(32, "0")
return "${contentMD5}"
</groovy>
</setHeader>