0

我编写了一个软件,它基本上登录到一个邮件帐户并在收件箱文件夹中搜索未读电子邮件,并查看主题是否是指定的主题,然后将其作为附件并对其进行处理。然后将该软件部署到 IBM Rule Execution Server 并通过 SOAP 启动。

为此,我使用的是 Javamail 1.6。以下代码段在本地运行良好:

Session session = Session.getInstance(mailProperties);

    try (Store store = session.getStore(mailProperties
        .getProperty("mail.store.protocol"))) {

        store.connect(mailProperties.getProperty("mail.imap.host"),
                mailProperties.getProperty("mail.user"),
                mailProperties.getProperty("mail.password"));

事先正确初始化了mailProperties,依此类推。部署完整代码 SOAPUI 后,会提供以下 NoSuchProviderException:

Caused by: javax.mail.NoSuchProviderException: imaps
    at javax.mail.Session.getService(Session.java:842)
    at javax.mail.Session.getStore(Session.java:626)
    at javax.mail.Session.getStore(Session.java:602)

我试图将提供者包括在内

Provider provider = new Provider(...);
store.connect(provider);

虽然这导致了同样的例外。

之后,我尝试通过将商店初始化为 IMAPSSLStore 来完全避开提供者,但这向java.lang.LinkageError我抛出了一个问题。尝试以不同的方式解决这个问题(包括将 ClassLoader 设置为不同的方式)并没有帮助。

老实说,我现在对如何进行此操作有点不知所措。

在我看来,很难找到应该包含在 javax.mail.jar 中的提供程序。

4

2 回答 2

0

您可能遇到了这个 JDK 错误,该错误已在较新版本的 JDK 中得到修复。您的服务器使用的是什么版本的 JDK?

于 2018-01-10T22:47:53.620 回答
0

我自己找到了我的问题的答案。IBM 包含的 Liberty 服务器在 server.xml 中有一个 featureManager。在那里你需要输入:

<feature>javaMail-1.5</feature>

让它工作-.-

于 2018-01-11T13:26:23.300 回答