2017-01-23 4 views
1

Я следую за этим сообщением о создании mock sftp-сервера для тестов весной. https://dzone.com/articles/spring-integration-mock-0. Это состоит из установки mock sftp-сервера, после чего помещается файл там со строкой в ​​качестве содержимого. Тест выполняется с помощью команды:Java - ошибка с интеграцией с весной Mock SftpServer

$ mvn -Dtest=SftpRetrieveFileTest test 

И ошибка я получаю:

java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = # 

комментируя блоки кода, я определил, что ошибка возникает, когда файл был помещен на сервер, с этими линиями:

String uploadedFileName = "uploadFile"; 
sftpChannel.put(new ByteArrayInputStream(testFileContents.getBytes()), uploadedFileName); 

Я уже видел некоторые обходные пути, которые говорят, что это может быть проблемой версии Java (некоторые говорили, что он работал в 1.6, но не с 1.7, который я использую) , Полный проект можно найти и клонировать от https://github.com/skprasadu/junit-testing-ftpflow-in-spring-integration.

спасибо.

ответ

0

Я просто спустил проект и провел его под 1.6 и 1.8. Тест проходит отлично под 1.6. Он не работает под 1,8 и возвращает ту же ошибку, которую вы видите ниже 1.7. Обходные пути являются точными. Вы должны переключиться на использование 1.6. Это результат кода с использованием метода String.fomat() и # тега, передаваемого в формат. На самом деле есть ошибка, связанная с проектом сервера SSHD Apache (RE: SSHD-104). Эта проблема была рассмотрена в версии 0.6.0 проекта. Таким образом, ваш другой вариант изменить Maven зависимость от

<dependency> 
     <groupId>org.apache.sshd</groupId> 
     <artifactId>sshd-core</artifactId> 
     <version>0.5.0</version> 
</dependency> 

в

<dependency> 
     <groupId>org.apache.sshd</groupId> 
     <artifactId>sshd-core</artifactId> 
     <version>0.6.0</version> 
</dependency> 

Затем проект/тест должен нормально работать под JDK 1.7, а также.

+0

Большое спасибо, что сработало и для меня. –

Смежные вопросы