Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaMailMessage.GetContent偶尔返回IMAPInputStream_Java_Spring_Jakarta Mail_Imap_Spring Integration - Fatal编程技术网

JavaMailMessage.GetContent偶尔返回IMAPInputStream

JavaMailMessage.GetContent偶尔返回IMAPInputStream,java,spring,jakarta-mail,imap,spring-integration,Java,Spring,Jakarta Mail,Imap,Spring Integration,我正在尝试使用spring集成电子邮件轮询器和IMAP从lotus notes读取电子邮件 一切似乎都很顺利 接收到的javamailMessage的getcontect方法是字符串或多部分的实例。我已经在我的代码中处理了这个问题 有时getcontent返回一个Inputstream。这种情况偶尔发生。一旦我们重新启动jvm,它似乎可以正常工作一段时间,然后又开始发生。关于为什么会发生这种情况的任何想法/建议。 我确实读过javadoc 对于DataHandler系统未知的内容类型,将返回一个

我正在尝试使用spring集成电子邮件轮询器和IMAP从lotus notes读取电子邮件

一切似乎都很顺利

接收到的javamailMessage的getcontect方法是字符串或多部分的实例。我已经在我的代码中处理了这个问题

有时getcontent返回一个Inputstream。这种情况偶尔发生。一旦我们重新启动jvm,它似乎可以正常工作一段时间,然后又开始发生。关于为什么会发生这种情况的任何想法/建议。 我确实读过javadoc

对于DataHandler系统未知的内容类型,将返回一个输入流作为内容

javamailmessage.getcontent()何时可以是Inputstream的实例。如何查找DataHandler系统未知的内容类型

我的应用程序是使用gradle构建的。我使用javamail 1.4.7

compile group: 'javax.mail', name: 'javax.mail-api', version:'1.4.7'
compile group: 'com.sun.mail', name: 'mailapi', version:'1.4.7'
compile group: 'com.sun.mail', name: 'imap', version:'1.4.7'

我使用Spring3.1.3和SpringIntegration3.0.4,JavaMail 1.4.7非常旧,如果可能的话,您应该这样做

请参阅以了解如何处理许多不同的内容类型


您可以使用getContentType方法查看程序未处理的内容类型。

我选择1.4.7的原因是1.5.2与我们使用的spring版本不兼容。我将尝试升级该版本。对于我最初的问题-您知道GetContentType何时可以返回inputstream吗。是否与未加载或未找到mailcap文件有关是的,这取决于mailcap文件是否找到处理每种数据类型的正确类,但如果正确获取多部分对象,则意味着它必须找到默认的mailcap文件。有大量可能的MIME类型没有到Java的默认映射。您需要弄清楚的是,您是遇到了这些MIME类型中的一种,还是得到了一个应该有映射但映射被破坏的公共MIME类型。例如,常见的附件MIME类型是application/pdf,但该MIME类型没有默认映射。对于相同的mimetype multipart/mixed(如果我记得正确的话),我大多数时候都会得到multipart。有时我会收到一些明显损坏的东西。JavaMail使用JAF处理MIME类型到Java的映射。JAF使用类加载器查找配置映射的mailcap文件。如果类加载器损坏,它有时可能无法找到映射。您正在运行哪个应用程序服务器?您使用的是什么JDK版本?Vfabric tc服务器,JDK 1.7。