camel sftp用户名

时间:2016-06-30 18:49:26

标签: apache-camel sftp

我正在使用Apache Camel 2.13.2并尝试连接到用户名中包含特殊字符的sftp。用户名类似于' XXX \ XX-XXXXXXX'。最后的驼峰URL会转换成类似下面的内容,并且身份验证失败。有人可以说明如何在用户名中处理这些特殊字符吗?

Endpoint[sftp://XXX%5CXX-xxxxxxx@99.999.99.99:22//folder_Test/?binary=true&consumer.bridgeErrorHandler=true&delay=15000&idempotent=true&idempotentKey=%24%7Bfile%3Aname%7D-%24%7Bfile%3Asize%7D-%24%7Bfile%3Amodified%7D&include=.*Test.*&maxMessagesPerPoll=30&password=xxxxxx&pollStrategy=%23FTPPollingConsumerPollStrategy&readLock=changed&sendEmptyMessageWhenIdle=true&stepwise=false&throwExceptionOnConnectFailed=true] 

以下是我在日志中看到的例外情况。

org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to sftp://XXX\XX-XXXXX@99.999.99.99:22
    at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:143)
    at org.apache.camel.component.file.remote.RemoteFileConsumer.connectIfNecessary(RemoteFileConsumer.java:154)
    at org.apache.camel.component.file.remote.RemoteFileConsumer.recoverableConnectIfNecessary(RemoteFileConsumer.java:145)
    at org.apache.camel.component.file.remote.RemoteFileConsumer.prePollCheck(RemoteFileConsumer.java:55)
    at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:106)
    at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
    at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
    at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: com.jcraft.jsch.JSchException: Auth fail
    at com.jcraft.jsch.Session.connect(Session.java:512)
    at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:115)
    ... 15 more

使用fileZilla或Apache FTP Utilities时sftp的相同凭据。

1 个答案:

答案 0 :(得分:3)

请参阅文档如何配置端点,尤其是有关密码的信息:http://camel.apache.org/how-do-i-configure-endpoints.html您需要使用RAW语法。您可以使用RAW语法将用户名/密码指定为uri参数,而不是uri的开头。