0

我能够通过价值概念使用 MTOM-XOP 上传图像。之后,我尝试通过引用概念(XOP:Include)使用 MTOM-XOP 上传相同的图像。我能够编写客户端程序并生成 OMElement 并传递它服务也。但是在这里我罢工了。我不知道如何处理引用的图像并写入指定的文件夹。我在谷歌上搜索但找到了许多关于按值概念和 SWA 概念的示例和解决方案。请给我指导或在服务器端处理 OMElement 的示例程序?

OM元素:

<fd:upload xmlns:fd="http://mtom.sample.com"><fd:fileName>dog</fd:fileName><fd:fileType>jpg</fd:fileType><fd:fileContent><axis2ns1:Include xmlns:axis2ns1="http://www.w3.org/2004/08/xop/include" href="dc88fd5aa40a7cbdd01c18b97c1202008f2f09ebaf2cf2f3@apache.org" /></fd:fileContent></fd:upload>

如何处理 href 属性,我在解决方案中找到了

ArrayList<OMElement> xops =AttachmentUtils.findXopElements(element);
        if (xops != null && xops.size() > 0) {
            logFile("Found XOP:Include Elements\n");
        }
        QName href = new QName("","href");
        Iterator<OMElement> itr = xops.iterator();
        while (itr.hasNext()) {
            OMElement xop = itr.next();
            String cid = xop.getAttributeValue(href);
            logFile("CID :"+cid+"\n");
        }

但是这部分不是在服务器端执行的。请给我们指导。

谢谢。

4

1 回答 1

0

Axiom 使用 isBinary() 返回 true 的 OMText 节点表示 XOP/MTOM 附件。为原始消息中的每个 xop:Include 元素创建这样一个节点。在此处描述的情况下,将检索 fd:fileContent 元素的第一个子元素,将其转换为 OMText,然后对该对象调用 getDataHandler()。返回的 DataHandler 允许访问附件的内容。

于 2011-11-15T15:10:22.983 回答