bytearrayinputstream 到 mule 4 中的字符串使用调用静态连接器

问题描述 投票:0回答:1

我想使用调用静态连接器从 mule 4 中的 .eml 文件中获取元素。但它给了我错误—— 使用参数 [org.mule.runtime.core.internal.streaming.bytes.ManagedCursorStreamProvider arg0] 从类 'testattach.Test' 调用静态方法 'Text(java.lang.String)' 导致错误。 预期的参数是 [java.lang.String s]。 原因:java.lang.ClassCastException - javax.mail.util.SharedByteArrayInputStream 无法转换为 javax.mail.Multipart"

java dataweave anypoint-studio mule4 anypoint-platform
1个回答
0
投票

首先,您的附件数据以 base64 编码,因此需要从消息邮件 Part 对象中获取并解码为字节数组或 String 作为最终输出所允许的数据类型。 简而言之,邮件消息对象的MessagePart对象只是一个内聚的part holder,标记并包含其Part类型所需的数据,而不是内部的底层字节数据holder对象类型,因此它不能直接对其进行转换。您必须首先从将检索该值的对象的方法中获取它的数据。 在邮件 Part.ATTACHMENT 部分使用 getContent() 返回一个 Object 并且可以转换为它相应的内容类型(通常是 String)并使用 Base64.Encoder.getMimeEncoder().decode(String)

© www.soinside.com 2019 - 2024. All rights reserved.