Problem with SFTP endpoint in FSW 6.0
Issue
We are using Switchyard from where we are trying to connect to a sftp server using camel's sftp endpoint. The sftp host name used is: sftp.myftpserver.com
The writing of the file fails with the following trace:
03-09-2015 08:18:46,047 WARN (org.apache.camel.processor.DefaultErrorHandler) [Camel (camel-157) thread #296 - file:///integrations/in/pending] Failed delivery for (MessageId: ...). On delivery attempt: 1 caught: org.switchyard.HandlerException: org.apache.camel.FailedToCreateProducerException: Failed to create Producer for endpoint: Endpoint[sftp://ftpuser:******@sftp.myftpserver.com:22/Test/?autoCreate=false&binary=true&bufferSize=131072&connectTimeout=10000&consumer.bridgeErrorHandler=true&disconnect=true&fileExist=Fail&fileName=%24%7Bheaders.outFileName%7D&passiveMode=false&recursive=false&stepwise=false&tempFileName=%24%7Bfile%3Aname%7D.tmp&throwExceptionOnConnectFailed=true]. Reason: java.lang.IllegalArgumentException: host must be specified and not empty
Is the sftp host name sftp.myftpserver.com not a valid name?
Further research revealed that the root cause of the issue is the usage of special characters in the password of the ftp user. Let's say the password/username contains the "@" symbol, this causes the connection string created by switchyard to omit the hostname and thus we are getting the error as we shared.
How we can escape the "@" symbols in username/password to make this work.
Environment
- Red Hat JBoss Fuse Service Works (FSW)
- 6.1.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
