如何解决在 WSO2 中,我无法将图像存储在属性中
在 WSO2 中,我尝试调用给定的 URL 以非常基本的方式获取 png 图像。然后,当我尝试存储/丰富时,每次都会遇到相同的错误:
> [2021-07-02 16:38:38,357] ERROR {RelayUtils} - Error while building
> Passthrough stream org.apache.axiom.om.OMException:
> com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0x89 (at
> char #1,byte #-1) at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)
> at
> org.apache.axiom.om.impl.llom.OMDocumentImpl.getoMDocumentElement(OMDocumentImpl.java:109)
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570)
> at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566)
> at
> org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:165)
> at
> org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:169)
> at
> org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:122)
> at
> org.apache.synapse.mediators.AbstractListMediator.buildMessage(AbstractListMediator.java:152)
> at
> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:95)
> at
> org.apache.synapse.mediators.eip.splitter.IterateMediator.mediate(IterateMediator.java:341)
> at
> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:267)
> at
> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:809)
> at
> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:309)
> at
> org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:583)
> at
> org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:197)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
> at
> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:285)
> at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
我尝试的基本上是这个
<call>
<endpoint>
<http method="get" uri-template="{uri.var.imageURL}">
<suspendOnFailure>
<initialDuration>-1</initialDuration>
<progressionFactor>1</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
</markForSuspension>
</http>
</endpoint>
</call>
<log level="full"/>
我知道 URL 有效并且 uri.var.imageURL 包含它。如果我不添加 log/enrich/payload 中介,我不会收到任何错误
我将这两行添加到了axis2.xml 各自的部分,但没有任何变化
<messageformatter contentType="image/png"
class="org.wso2.carbon.relay.Expandingmessageformatter"/>
<messageBuilder contentType="image/png"
class="org.wso2.carbon.relay.BinaryRelayBuilder"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。