我试图构建一个简单的路由,从FTP文件夹读取,并将其存储在本地资源文件夹中。我能够连接到FTPendpoint,但之后什么也不会发生。
要启动我的程序,我使用:mvn clean compile camel:run
INFO | Apache Camel 2.20.0 (CamelContext: camel-1) is starting
INFO | JMX is enabled
INFO | Type converters loaded (core: 192, classpath: 4)
INFO | StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
INFO | Route: route1 started and consuming from: ftp://xx.xx.xx.xx/ftp/xx/xx?password=xxxxxx&username=xx
INFO | Total 1 routes, of which 1 are started
INFO | Apache Camel 2.20.0 (CamelContext: camel-1) started in 0.333 seconds
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.nettport</groupId>
<artifactId>camel_download_file_from_ftp_and_get_name_and_content</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- Camel -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>spi-annotations</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jms</artifactId>
<version>2.20.0</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<version>2.20.0</version>
</dependency>
<!-- //Spring -->
<!-- FTP -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-ftp</artifactId>
<version>2.20.0</version>
</dependency>
<!-- //FTP -->
<!-- Quartz -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-quartz</artifactId>
<version>2.20.0</version>
</dependency>
<!-- //Quartz -->
<!-- ActiveMq -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.15.1</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.8.0-alpha2</version>
</dependency>
<!-- //Logging -->
</dependencies>
<build>
<plugins>
<!-- Allows the routes to be run via 'mvn camel:run' -->
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<version>2.20.0</version>
</plugin>
</plugins>
</build>
</project>
package com.nettport;
import org.apache.camel.builder.RouteBuilder;
public class ReceiverRoute extends RouteBuilder {
private String receiverFtpEndpoint;
public void configure() throws Exception {
// lets shutdown faster in case of in-flight messages stack up
getContext().getShutdownStrategy().setTimeout(10);
from(receiverFtpEndpoint)
.log("### FTP Receiver Route started and consuming ###")
.to("file:data/work_in_progress")
.log("Downloaded file ${file:name} complete.");
}
public void setReceiverFtpEndpoint(String receiverFtpEndpoint) {
this.receiverFtpEndpoint = receiverFtpEndpoint;
}
}
<?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-3.0.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="receiverRoute" class="com.nettport.ReceiverRoute">
<property name="receiverFtpEndpoint" value="ftp://xx.xx.xx.xx/ftp/xx/xx?username=xx&password=xx"/>
</bean>
<camelContext xmlns="http://camel.apache.org/schema/spring">
<routeBuilder ref="receiverRoute"/>
</camelContext>
</beans>
好的,同事们。如果有人遇到类似的问题,我设置了一个简单的路由,将文件从FTP复制到本地磁盘文件夹,但它什么也不起作用
请尝试以下操作:
>
警告
或错误
级别消息。确保您在pom.xml
中指定了camel-FTP
或camel-FTP-starter
。我已经设置了一个Spring Boot应用程序,并且在我的pom.xml
中有以下依赖项
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-ftp-starter</artifactId>
<version>3.0.0-M2</version>
</dependency>
请确保您已阅读此文档:
$ docker pull stilliard/pure-ftpd:hardened
$ docker run -e FTP_USER_NAME=lord -e FTP_USER_PASS=nighton -e FTP_USER_HOME=/home/lordnighton -d --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e "PUBLICHOST=localhost" stilliard/pure-ftpd:hardened
$ ftp ftp://lord:nighton@localhost:21 # check the connection with user/password
>
在扩展RouteBuilder
的类中指定路由:
from("ftp://lord@localhost:21/home/lordnighton?password=nighton&passiveMode=true")
.to("file:src/main/resources/data/from-ftp");
您还可以将camel
组件的日志级别切换到trace
以查看更详细的日志:
log4j.logger.org.apache.commons.net=TRACE
log4j.logger.org.apache.camel.component.file=TRACE
log4j.logger.org.apache.camel.component.ftp=TRACE
有时将passiveMode
切换到true
会很有帮助:
from("ftp://lord@localhost:21/home/lordnighton?password=nighton&passiveMode=true")
调试好运!
我有一个名为的项目,它有以下结构: 所以这两个文件的路径是: 我想读测试文件。TestDataProvider中的json。JAVA 我曾经用过 我看到从URL res=getClass(). getClassLoader(). getResources("testfile.json")返回; 有人能帮我吗?
问题内容: 我正在使用Spring Boot和。我正在尝试从文件夹读取一个文件。我尝试了几种不同的方法,但无法正常工作。这是我的代码。 这是文件的位置。 在这里,我可以看到文件夹中的文件。 但是,当我运行代码时,出现以下错误。 我在代码中做错了什么? 问题答案: 在花费大量时间尝试解决此问题之后,终于找到了可行的解决方案。该解决方案利用了Spring的ResourceUtils。也应该适用于jso
如何从资源文件夹的子文件夹中读取文件。 我在资源文件夹中有一些json文件,例如: 现在我想在我的课堂上读到这个 这是我正在尝试的,但是失败了。 不起作用,那么我正在尝试: 这两样东西都不工作。
以下是我得到的错误: 提前感谢!
问题内容: 我们如何从文本文件读取数据并将其存储在String变量中? 是否有可能在方法中传递文件名,并且它将返回字符串,即文件中的文本。 我必须导入哪种工具?声明列表会很棒。 问题答案: 这些是必需的进口: 这是一种方法,通过将文件名作为参数传递给它,您可以从文件中进行读取,如下所示:
问题内容: 我正在尝试在Android Studio的res \ raw文件中保留一个.txt文件,并读取/解析该文件。我在“ res”目录(未创建)中创建的名为“ raw”的文件夹中有一个文件“ my_file.txt”。 我认为我的主要问题是:创建File对象(与Scanner对象一起使用)时,应该为文本文件传递什么路径? 这是我的代码: 问题答案: 认为您正在寻找符合以下条件的东西 其中ct