如何在XPage中使用JavaMail的更新版本?

时间:2013-08-07 07:51:32

标签: xpages javamail

我有一个XPage应用程序,我在其中一个托管bean中使用JavaMail。目前我已将jar文件C:\Programme\IBM\Notes\framework\shared\eclipse\plugins\com.ibm.designer.lib.javamail_9.0.0.20130301-1431\lib\mail.jar添加到manged bean的构建路径中。这很好用。但现在我想使用更新版本的JavaMail,因为Domino服务器使用的是1.3版,但我需要1.4.x版。

我从Oracle下载了新的JavaMail jar文件。在Domino Designer(版本9)中,我将此jar文件添加到新设计元素“Code / Jars”中,并从构建路径中删除旧的jar文件。
我的托管bean仍在编译并按需运行,但是如果我检查bean正在使用它的版本,则报告仍然是版本1.3。要检查版本号,我使用JavaMail的debug属性,并将其报告版本1.3到多米诺骨牌服务器控制台。

有没有办法告诉多米诺骨牌服务器使用应用程序中的jar文件(即nsf)而不是他自己的?是否有另一种方法来更新JavaMail版本?

我想使用较新版本的JavaMail的原因如下:我想从带有ssl的imap服务器读取邮件。为了避免导入ssl-certificates的问题,我只想信任所有主机。这可以通过MailSSLSocketFactory完成,但这仅在1.4.2版本之后可用。因此,我想使用更新版本的JavaMail。

我想使用更新版本的另一个原因如下:“IMAPFolder”的方法“getSortedMessages”仅在版本1.4.4之后可用。 (以及JavaMail的其他一些功能)。

3 个答案:

答案 0 :(得分:1)

这对你来说可能有点晚了......我认为正确的方法可能是将jar文件包含为OSGi插件。

我花了一些时间来弄清楚如何做到这一点 - 最近成功了:-)我已经描述了在两篇文章中完成这项工作的步骤。第一个是将JAR包装到插件中:http://www.dalsgaard-data.eu/blog/wrap-an-existing-jar-file-into-a-plug-in/ - 第二个是关于部署(第一个中有一个链接)。

/约翰

答案 1 :(得分:0)

我在这里遇到了同样的问题,但找到了解决方案。请注意,这不是最好的答案,但它会起作用。只需下载最新的javamail jar here并将jar文件重命名为'mail.jar'。只需使用此文件替换IBM \ Notes \ framework \ shared \ eclipse \ plugins \ com.ibm.designer.lib.javamail_9.0.0.20130301-1431 \ lib \ mail.jar中的当前文件即可。退出http任务并重新启动它。该代码现在可以使用最新版本。

答案 2 :(得分:0)

您可以通过创建一个OSGi插件来解决问题,该插件取代了体现JavaMail库的插件: com.ibm.designer.lib.javamail 。 为此,请执行以下操作:

  1. 创建一个OSGi插件,其ID为 com.ibm.designer.lib.javamail Dalsgaard's tutorial on how to do it
  2. 将其版本设置为比Domino服务器附带的版本更高的数字(要知道版本类型告诉http osgi ss com.ibm.designer.lib.javamail )。截至目前使用9.0.1.qualifier应该没问题
  3. 通过更新站点或直接在domino \ workspace \ applications \ eclipse \ plugins文件夹下复制插件来部署插件。
  4. 重新启动HTTP服务。现在将使用更高版本 - 您创建的版本