Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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
Java 为什么附件方法不适用于Mule中的多部分消息?_Java_Mule_Attachment_Multipart - Fatal编程技术网

Java 为什么附件方法不适用于Mule中的多部分消息?

Java 为什么附件方法不适用于Mule中的多部分消息?,java,mule,attachment,multipart,Java,Mule,Attachment,Multipart,对于我正在进行的项目,我必须处理带有附件的xml消息,即所谓的多部分消息,如下所示: 我的目标是删除附件,只保留xml作为有效负载 我一直在研究MuleMessage类和DefaultMuleMessage类中与附件相关的方法,但我无法让它起作用。我希望有人能给我一个提示,告诉我如何让这些方法发挥作用 当我从SoapUI发送带有附件的消息时,我可以使用getPayloadForLogging记录该消息,并查看它是一个具有多个Mime边界的多部分消息,如下所示: ------=_Part_9_45

对于我正在进行的项目,我必须处理带有附件的xml消息,即所谓的多部分消息,如下所示:

我的目标是删除附件,只保留xml作为有效负载

我一直在研究MuleMessage类和DefaultMuleMessage类中与附件相关的方法,但我无法让它起作用。我希望有人能给我一个提示,告诉我如何让这些方法发挥作用

当我从SoapUI发送带有附件的消息时,我可以使用getPayloadForLogging记录该消息,并查看它是一个具有多个Mime边界的多部分消息,如下所示:

------=_Part_9_4557707.1396945202422
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <rootpart@soapui.org>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://microsoft.com/webservices/">
<soapenv:Header/>
<soapenv:Body>
</soapenv:Body>
</soapenv:Envelope>
------=_Part_9_4557707.1396945202422
Content-Type: image/x-png
Content-Transfer-Encoding: binary
Content-ID: <soapui32.png>
Content-Disposition: attachment; name="soapui32.png"

PNG
xxxxxxx
------=_Part_9_4557707.1396945202422-- 
当我通过它传递上述多部分消息时,我从getInboundAttachmentNames得到一个空集

当我尝试移除OutboundAttachment*时,它不会移除该附件

当我尝试使用以下方法创建带有附件的邮件时:

String payload = TestUtilities.readFile("testdata/test1.xml");
DefaultMuleMessage msg = new DefaultMuleMessage(payload, muleContext);
msg.addOutboundAttachment("plaatje", new File("testdata/test1.png"), "image/png"); 
MuleMessage reply = client.send("vm://test_01", msg, 5000);
它创建了一条消息,但没有附件。而且它不是一个多部分消息

我使用多部分消息的附件方法是否有误?我做错什么了吗

谢谢, 杰罗恩

当附件与其关联的消息一起接收到流中时,它被视为入站属性

因此,应该使用getInboundAttachmentNames打印附件名称

更新:


找到了。它仍然没有解决,这表明附件方法不适用于多部分/相关。

谢谢您的回答,您是正确的。我先试过那个,但没用。然后我尝试了出境,看看这是否有什么不同,这就是为什么它最终在这里。我会在原来的问题中更正它。
String payload = TestUtilities.readFile("testdata/test1.xml");
DefaultMuleMessage msg = new DefaultMuleMessage(payload, muleContext);
msg.addOutboundAttachment("plaatje", new File("testdata/test1.png"), "image/png"); 
MuleMessage reply = client.send("vm://test_01", msg, 5000);