Пролетна интеграция с поща

Правя POC при получаване на поща чрез Spring Integration. Конфигурирах конфигурациите си с помощта на тази връзка, но моят POC хвърля изключение. Моят pom файл изглежда така

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.0.3.RELEASE</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-mail</artifactId>
        <version>4.0.0.RELEASE</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>javax.mail-api</artifactId>
        <version>1.4.7</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>mailapi</artifactId>
        <version>1.4.7</version>
        <scope>compile</scope>
    </dependency> 

Получавам следното изключение, когато се опитвам да стартирам програмата.

    DEBUG: Exception loading provider, THROW: 
java.lang.ClassNotFoundException: com.sun.mail.imap.IMAPSSLStore
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:259)
    at javax.mail.Session.getService(Session.java:788)
    at javax.mail.Session.getStore(Session.java:586)
    at javax.mail.Session.getStore(Session.java:548)
    at org.springframework.integration.mail.AbstractMailReceiver.openSession(AbstractMailReceiver.java:207)
    at org.springframework.integration.mail.AbstractMailReceiver.openFolder(AbstractMailReceiver.java:225)
    at org.springframework.integration.mail.ImapMailReceiver.waitForNewMessages(ImapMailReceiver.java:111)
    at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:214)
    at org.springframework.integration.mail.ImapIdleChannelAdapter$ReceivingTask.run(ImapIdleChannelAdapter.java:184)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
01:04:31.034 WARN  [task-scheduler-1][org.springframework.integration.mail.ImapIdleChannelAdapter] error occurred in idle task
javax.mail.NoSuchProviderException: imaps

Опитах се да променя версиите на API на sun mail и версиите на API на javax mail на 1.4.4, но няма полза, ако някой може да ме насочи каква допълнителна версия или версия на буркани ми трябва.


person mallikarjun    schedule 17.09.2014    source източник


Отговори (1)


Трябва да е така:

<dependency>
    <groupId>org.springframework.integration</groupId>
    <artifactId>spring-integration-mail</artifactId>
    <version>4.0.4.RELEASE</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
    <version>1.4.7</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
    <scope>compile</scope>
</dependency> 
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>imap</artifactId>
    <version>1.4.7</version>
    <scope>compile</scope>
</dependency> 

Както виждате, коригирам някои версии, премахвам излишните транзитивни deps и добавям необходимите.

person Artem Bilan    schedule 17.09.2014
comment
Благодаря, че свърши работа, но се сблъсках с друг проблем. Опитвам се да се свържа с out look, но името на домейна ми е различно. Дава следното изключение. DEBUG IMAPS: protocolConnect returning false, host=xxxxxx.co.in, user=mallikarjun_d, password=<null> 19:42:56.725 WARN [task-scheduler-1][org.springframework.integration.mail.ImapIdleChannelAdapter] error occurred in idle task javax.mail.AuthenticationFailedException: failed to connect, no password specified - person mallikarjun; 18.09.2014
comment
Съжалявам, но това е друг въпрос. Така че, просто започнете и аз ще ви помогна. И да затворим този, ако вече е оправен! - person Artem Bilan; 18.09.2014