Camel Spring:没有找到scheme的组件:sftp

时间:2016-05-23 13:32:43

标签: spring apache-camel

我正在尝试创建使用Camel Spring将文件从一个位置移动到另一个位置的组件。

它适用于FTP,但在尝试使用SFTP时出错。

错误是(SFTP URI:sftp:// IP地址:Port / CamelTesting?username = testftp& password = testftp): 从类路径资源[testApplicationContext.xml]加载XML bean定义 线程“main”org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException中的异常:来自类路径资源[processorApplicationContext.xml]的XML文档中的第25行无效;嵌套异常是org.xml.sax.SAXParseException; lineNumber:25; columnNumber:76;对实体“密码”的引用必须以“;”结尾分隔符。

错误是(SFTP URI(& amp):sftp:// IP地址:Port / CamelTesting?username = testftp& password = testftp): 线程“main”中的异常org.apache.camel.RuntimeCamelException:org.apache.camel.FailedToCreateRouteException:无法在以下位置创建路由route1:>>>至[sftp:// IP地址:Port / CamelTesting?username = testftp& password = testftp]<<<在路线:路线(路线1)[[从[文件:D:/测试/在]] - > [To [sftp:/ IP Address:Port ...因为无法解析端点:sftp:// IP地址:Port / CamelTesting?password = testftp& username = testftp,原因是:没有找到scheme的组件:sftp

依赖关系是:

<dependencies>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>2.15.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.1.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring</artifactId>
        <version>2.15.1</version>
    </dependency>
</dependencies>

testApplicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans     
http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd">       
<camelContext xmlns="http://camel.apache.org/schema/spring">
    <!--FTP Working fine--> 
    <!--route>
        <from uri="file:D:/Test/in" />                          
        <to uri="file:D:/Test/out" />
    </route-->

     <!--SFTP--> 
     <route>
        <from uri="file:D:/Test/in" />          
        <to uri="sftp://<IP Address:Port>/CamelTesting?username=testftp&password=testftp"/>
    </route> 
</camelContext>

测试类:

import org.apache.camel.CamelContext;
import org.apache.camel.spring.SpringCamelContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testSFTP {
public static final void main(String[] args) throws Exception {
    ConfigurableApplicationContext appContext = new ClassPathXmlApplicationContext("testApplicationContext.xml");
    CamelContext camelContext = SpringCamelContext.springCamelContext(appContext, false);
    try {
        camelContext.start();
        Thread.sleep(3000);
    }catch(Exception e){
        e.printStackTrace();
    }
    finally {
        camelContext.stop();
        appContext.close();
    }
    }
}

有人可以帮助我解决问题。

1 个答案:

答案 0 :(得分:7)

在xml中使用… 7.00 is between 5.30 and 6.30 False 7.00 is between 6.30 and 0.30 False 作为&amp;

&amp;

for secord错误:

您需要将camel-ftp添加到类路径中。只需将其作为依赖项添加到pom.xml。

<route>
    <from uri="file:D:/Test/in" />          
    <to uri="sftp://<IP Address:Port>/CamelTesting?username=testftp&amp;password=testftp"/>
</route> 

希望这会有所帮助。