Весенняя интеграция с почтой

Делаю 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 на 1.4.4, но бесполезно, может ли кто-нибудь указать мне, какие дополнительные или версии jar-файлов мне нужны.


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> 

Как видите, я исправляю некоторые версии, убираю лишние транзитивные зависимости и добавляю нужные.

person Artem Bilan    schedule 17.09.2014
comment
Спасибо, это сработало, но столкнулся с другой проблемой. Я пытаюсь подключиться к внешнему виду, но у меня другое доменное имя. Это дает следующее исключение. 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