私は例を試しています。例では、Spring-integration 2.0.3 を使用するように言及されていますが、NullPointerExcpetion を取得し、それを解決するためにここに記載されている内容に従いました。しかし、Spring-Integration 2.1 を使用する場合は、Spring 3.0 が必要だと思います。
質問: Spring バージョン 2.5 を使用して、imap からメールを読み取る spring-integration を使用することは可能ですか?
以下は、私のプロジェクトで設定された Maven 依存関係です。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>
...
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mail</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
spring-component.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mail="http://www.springframework.org/schema/integration/mail"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/integration/mail
http://www.springframework.org/schema/integration/mail/spring-integration-mail-2.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd">
<util:properties id="javaMailProperties">
<prop key="mail.imap.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.imap.socketFactory.fallback">false</prop>
<prop key="mail.store.protocol">imaps</prop>
<prop key="mail.debug">false</prop>
</util:properties>
<mail:inbound-channel-adapter id="imapAdapter"
store-uri="imaps://<username>:<password>@imap.googlemail.com:993/INBOX"
channel="recieveEmailChannel"
should-delete-messages="false"
should-mark-messages-as-read="true"
auto-startup="true"
java-mail-properties="javaMailProperties">
<int:poller fixed-delay="5" time-unit="SECONDS"/>
</mail:inbound-channel-adapter>
<int:channel id="recieveEmailChannel">
<int:interceptors>
<int:wire-tap channel="logger"/>
</int:interceptors>
</int:channel>
<int:logging-channel-adapter id="logger" level="DEBUG"/>
<int:service-activator input-channel="recieveEmailChannel" ref="emailReceiverService" method="receive"/>
<bean id="emailReceiverService" class="com.mycompany.DefaultEmailReceiverUtilService">
</bean>
EmailNotificationTest.java
public class EmailNotificationTest extends
AbstractDependencyInjectionSpringContextTests
{
public static final String SOURCE_VERSION_ID = "$Id$";
//Who ever wants to run this testcase ,Please uncomment this method
protected String[] getConfigLocations()
{
return new String[]
{ "classpath:META-INF/spring/component.xml" };
}
public void testSimpleEmailNotification()
{
}
}
テストケースを実行すると、次の例外が発生します。
org.springframework.beans.factory.BeanDefinitionStoreException: クラスパス リソース [META-INF/spring/component.xml] から XML ドキュメントを解析中に予期しない例外が発生しました。ネストされた例外は java.lang.NoClassDefFoundError: org/springframework/scheduling/support/PeriodicTrigger at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420) at org.springframework.beans.factory.xml です。 XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java: 143) org.springframework.beans.factory.support.AbstractBeanDefinitionReader で。