【问题标题】:I can't get FTP to work using Spring Integration我无法使用 Spring Integration 让 FTP 工作
【发布时间】:2013-03-28 14:20:16
【问题描述】:

我正在尝试设置我的应用程序以使用 Spring Integration(版本 2.2.0.RELEASE)接收文件。 当我启动 Tomcat(部署应用程序的位置)时,我收到以下错误消息。有人知道为什么吗?

SEVERE: Error configuring application listener of class com.xxxx.aaa.web.mvc.context.CccccContextListener
java.lang.NoClassDefFoundError: com/xxxx/bbb/application/core/exception/unchecked/InvalidFormatException
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    at java.lang.Class.getConstructor0(Class.java:2699)
    at java.lang.Class.newInstance0(Class.java:326)
    at java.lang.Class.newInstance(Class.java:308)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4079)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
    at org.apache.catalina.core.StandardService.start(StandardService.java:519)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: com.xxxx.bbb.application.core.exception.unchecked.InvalidFormatException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    ... 20 more

我相信上面的错误消息是一个红鲱鱼。在 pom 文件添加 spring 集成依赖并拥有 ftp 配置文件之前,Tomcat 已成功启动。

我使用 Java6 和 Tomcat6。我的 FTP 配置文件是:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:int="http://www.springframework.org/schema/integration"
    xmlns:int-ftp="http://www.springframework.org/schema/integration/ftp"
    xsi:schemaLocation="
           http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/integration
           http://www.springframework.org/schema/integration/spring-integration-2.2.xsd
           http://www.springframework.org/schema/integration/ftp
           http://www.springframework.org/schema/integration/ftp/spring-integration-ftp-2.2.xsd">

    <int:channel id="ftpChannel">
        <int:queue/>
    </int:channel>

    <bean id="ftpClientFactory"
        class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
        <property name="host" value="localhost" />
        <property name="port" value="21" />
        <property name="username" value="user" />
        <property name="password" value="password" />
    </bean>

    <int-ftp:inbound-channel-adapter 
        id="ftpInbound"
        channel="ftpChannel" 
        filename-pattern="*.csv" 
        session-factory="ftpClientFactory"
        auto-create-local-directory="true" 
        delete-remote-files="true"
        remote-directory="/" 
        local-directory="C:/folder/IN">
            <int:poller fixed-rate="1000" max-messages-per-poll="15"/>
    </int-ftp:inbound-channel-adapter>

</beans>

我在pom文件中添加了如下依赖:

<dependency>
   <groupId>org.springframework.integration</groupId>
   <artifactId>spring-integration-ftp</artifactId>
   <version>2.2.0.RELEASE</version>
</dependency>

【问题讨论】:

    标签: ftp spring-integration


    【解决方案1】:

    实际上 Spring Integration 至少需要 Spring 核心版本 3.0.5,而我将它设置为 3.0.2。一旦我将 spring core 升级到 3.0.5,它就可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多