【问题标题】:Is it possible to process HTML response from Call mediator?是否可以处理来自呼叫中介的 HTML 响应?
【发布时间】:2019-10-27 06:35:12
【问题描述】:

无论我尝试了什么——将正文丰富到 ​​STRING 属性,记录响应——我总是得到一个异常,这可能与 html 不是正确的 xml 有关。我根本不需要遍历 html,我只需要将它存储为字符串属性。

[2019-06-12 18:56:37,670] [-1234] [] [PassThroughMessageProcessor-80] ERROR {org.apache.synapse.transport.passthru.util.DeferredMessageBuilder} -  Error building message
org.apache.axis2.AxisFault: Invalid UTF-8 start byte 0xff (at char #1, byte #-1)
        at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
        at org.apache.axis2.builder.ApplicationXMLBuilder.processDocument(ApplicationXMLBuilder.java:88)
        at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:153)
        at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:163)
        at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:116)
        at org.apache.synapse.mediators.AbstractListMediator.buildMessage(AbstractListMediator.java:145)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:94)
        at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:250)
        at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:242)
        at org.apache.synapse.mediators.eip.splitter.IterateMediator.mediate(IterateMediator.java:261)
        at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:242)
        at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:267)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:783)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:281)
        at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:570)
        at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:193)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:263)
        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)
Caused by: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0xff (at char #1, byte #-1)
        at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:536)
        at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:585)
        at com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:610)
        at com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:316)
        at org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper.createXMLStreamReader(XMLInputFactoryWrapper.java:95)
        at org.apache.axiom.util.stax.wrapper.WrappingXMLInputFactory.createXMLStreamReader(WrappingXMLInputFactory.java:116)
        at org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper.createXMLStreamReader(XMLInputFactoryWrapper.java:95)
        at org.apache.axiom.om.util.StAXUtils$1.run(StAXUtils.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.axiom.om.util.StAXUtils.createXMLStreamReader(StAXUtils.java:198)
        at org.apache.axis2.builder.ApplicationXMLBuilder.processDocument(ApplicationXMLBuilder.java:77)
        ... 20 more
Caused by: java.io.CharConversionException: Invalid UTF-8 start byte 0xff (at char #1, byte #-1)
        at com.ctc.wstx.io.UTF8Reader.reportInvalidInitial(UTF8Reader.java:303)
        at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:397)
        at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:111)
        at com.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:250)
        at com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:133)
        at com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:531)
        ... 30 more
[2019-06-12 18:56:37,690] [-1234] [] [PassThroughMessageProcessor-80]  INFO {org.apache.synapse.mediators.builtin.LogMediator} -  To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: , MessageID: urn:uuid:94d02c25-5ddf-40c9-a7a4-a746fb28c797, Direction: request, MESSAGE = Executing default 'fault' sequence, ERROR_CODE = 0, ERROR_MESSAGE = Error while building message. Error while building Passthrough stream, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body/></soapenv:Envelope>

【问题讨论】:

    标签: wso2 wso2ei synapse


    【解决方案1】:

    查看axis2.xml

    对于像这样的 html mime 类型应该有 messageBuilder

        <messageBuilder contentType="text/html" 
                        class="org.apache.axis2.format.PlainTextBuilder"/>
    

    如果它未注释并且您仍然有错误,请检查 mime-type 标头作为响应。

    【讨论】:

    • 我在通过 调用调解器后立即记录内容类型,不幸的是结果是 application/xml。我可以手动更改内容类型或在呼叫中介响应后立即使用消息生成器吗?
    猜你喜欢
    • 2018-11-18
    • 2022-07-30
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 2019-08-08
    相关资源
    最近更新 更多