Верблюд проверяет контрольную сумму перед обработкой файла - PullRequest
0 голосов
/ 06 сентября 2018

Я использую Camel версии 2.20 и файловый компонент с пружинной загрузкой. Мое требование - проверить контрольную сумму MD5 файла перед дальнейшей обработкой (сохранить данные в базе данных с помощью компонента jpa). Я получаю значение контрольной суммы MD5 в отдельном файле свойств.

Я добавил метод validate, который возвращает true или false в зависимости от того, совпадает ли вычисленная контрольная сумма с контрольной суммой, которую я получаю из файла свойств. Но когда я тестирую этот маршрут с использованием создателя ложных сообщений, контрольная сумма всегда отличается. Я использую API02.sendBody (Object o) для отправки данных. Чего мне не хватает?

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете вычислить значение 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...