【发布时间】: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