在 wso2 ei 我得到 org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: DOCTYPE is not allowed 异常 [英] in wso2 ei i am getting org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: DOCTYPE is not allowed exception

查看:61
本文介绍了在 wso2 ei 我得到 org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: DOCTYPE is not allowed 异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

调用端点后,我得到的响应为

<...>

所以,它抛出异常

org.apache.axis2.AxisFault:构建直通流时出错在 org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:384)在 org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:196)在 org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:113)在 org.apache.synapse.mediators.AbstractListMediator.buildMessage(AbstractListMediator.java:145)在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:94)在 org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:260)在 org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:774)在 org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:281)在 org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:570)在 org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:193)在 org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)在 org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:263)在 org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)在 java.lang.Thread.run(Thread.java:748)引起:org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: DOCTYPE is not allowed在 org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)在 org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109)在 org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570)在 org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566)在 org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:165)在 org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:160)……还有 14 个引起:javax.xml.stream.XMLStreamException: DOCTYPE is not allowed在 org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:36)在 org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)在 org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)... 19 更多

我认为在处理 html 正文时,它是作为 xml 处理的,因此会引发异常.

如何解决这个问题

解决方案

在axis2.xml文件中通过更新下面的message builder和message formatter,解决了上述问题.

<块引用>

消息生成器

 

<块引用>

消息格式化程序

After calling an endpoint I am getting the response as

<!DOCTYPE html>
<.
..>

So, it is throwing exception

org.apache.axis2.AxisFault: Error while building Passthrough stream
        at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:384)
        at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:196)
        at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:113)
        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.base.SequenceMediator.mediate(SequenceMediator.java:260)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:774)
        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: org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: DOCTYPE is not allowed
        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.builldMessage(RelayUtils.java:160)
        ... 14 more
Caused by: javax.xml.stream.XMLStreamException: DOCTYPE is not allowed
        at org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:36)
        at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
        at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)
        ... 19 more

I thought while processing the html body it is processing as xml so it is throwing the exceptions.

How to solve this problem

解决方案

In axis2.xml file by updating the following message builder and message formatter, the above-mentioned problem solved.

Message builder

 <messageBuilder contentType="text/html"
                        class="org.wso2.carbon.relay.BinaryRelayBuilder"/>

Message formatter

<messageFormatter contentType="text/html"
                        class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>

这篇关于在 wso2 ei 我得到 org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: DOCTYPE is not allowed 异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆