我有一个程序可以监听ftp地址,每当出现新文件时它会接收并转换为pojo。但是我从main()
方法运行它。这不是很舒服。
我想创建一个将执行相同操作的servlet,但我将创建war
文件并将其放入TomCat并且程序将自行运行,因此我不必运行它。
我使用camel servlet和spring listener创建了web.xml
,并且不知道我的进一步步骤应该是什么。
这就是我现在所拥有的:
我的课程:
@Component
public class test extends SpringRouteBuilder {
@Override
public void configure() throws Exception {
from("ftp://Mike@localhost?noop=true&binary=true").to("file://data");
}
}
的web.xml:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:camel-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
驼-config.xml中
<context:component-scan base-package="org.apache.camel.spring.issues.contextscan"/>
<camelContext id="camel5" xmlns="http://camel.apache.org/schema/spring">
<routeBuilder ref="myBuilder" />
</camelContext>
<bean id="myBuilder" class="test"/>
UPD:
现在我看到我的程序连接到ftp,但它不会复制文件。
我粘贴了日志我正在http://pastebin.com/2tTf6QmL
答案 0 :(得分:1)
我从这个问题中得出的结论是,您正在尝试使用camel-servlet组件来初始化Web应用程序中的camel路由。 Camel-servlet组件不适合这样做。如果你使用spring with camel,那么配置Spring web context loader org.springframework.web.context.ContextLoaderListener
并在spring应用程序上下文文件中导入spring-camel xml。