【问题标题】:How to implement file upload API in WSO2 ESB?如何在 WSO2 ESB 中实现文件上传 API?
【发布时间】:2020-07-04 19:41:36
【问题描述】:

我正在尝试文件上传程序,我在设置 binay = true 时在脚本调解器中遇到异常。以下是代码

    <?xml version="1.0" encoding="UTF-8"?>
<api context="/v1/document" name="DocUpload" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="POST" url-mapping="/upload">
        <inSequence>
            <log level="full"/>
            <property expression="json-eval($.fileName)" name="fileName" scope="default" type="STRING"/>
            <property expression="json-eval($.fileContent)" name="fileContent" scope="default" type="STRING"/>
            <payloadFactory media-type="xml">
                <format>
                    <ns:binary xmlns:ns="http://ws.apache.org/commons/ns/payload">$1</ns:binary>
                </format>
                <args>
                    <arg evaluator="xml" expression="$body/attachments/content"/>
                </args>
            </payloadFactory>
            <script language="js"><![CDATA[var binaryNode =       
                    mc.getEnvelope().getBody().getFirstElement().getFirstOMChild();  
                    binaryNode.setBinary(true);]]></script>
            <log level="full">
                <property expression="$ctx:fileName" name="fileName"/>
            </log>

异常如下

"fileContent": "Base64 IMAGECONTENT"}/request/mediate/soapenv:Body/soapenv:Envelope

[2020-07-03 17:48:21,346] 错误 {org.apache.synapse.mediators.bsf.ScriptMediator} - 脚本引擎返回错误执行内联 js 脚本函数调解 com.sun.phobos.script .util.ExtendedScriptException:org.mozilla.javascript.EcmaError:TypeError:无法在第 3 行的 Unknown Source 中调用 null(Unknown Source#3)的方法“setBinary”

我已经使用 POSTMAN 通过调用 API 上传文件,如下所示

,感谢任何帮助

【问题讨论】:

  • 嗨@Brijesh,您找到通过WSO2 EI API 上传附件的解决方案了吗??
  • 不,我可以上传文本文件,但不能上传 PDF、word 等文件格式。我为此使用了自定义调解器,使用 java 。
  • 嗨@Brijesh,我也有类似的用例,面临一些问题,请你看看下面的问题。 stackoverflow.com/questions/64347153/…

标签: wso2 wso2esb wso2carbon


【解决方案1】:

您似乎将邮件正文作为邮递员中的标头发送(请求{ "文件名":"imageNew2.png", “文件内容”:“Base64 图像内容” })

请尝试将请求负载作为正文发送(使用 POST 请求)。

如果您对处理文件感兴趣,请参阅1 [2] 中的 VFS 传输以及文件连接器操作。

[1] -https://docs.wso2.com/display/ESB500/VFS+Transport

[2]-https://docs.wso2.com/display/ESBCONNECTORS/File+Connector

【讨论】:

    猜你喜欢
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    相关资源
    最近更新 更多