在我的例子中,使用正确的查询服务器总是返回一个正常处理并发回的 XML 响应。但同时,服务器配置是这样的,当查询不正确时,它会返回 HTML 响应而不是 XML。如果您尝试处理或如何替换,请重新创建响应的正文,我只是在解析时出错唯一有效的东西只是简单地发回给用户。是否有可能以某种方式避免解析过程并以我的个人格式发送错误?
几个细节:
所以我得到一个响应代码
<property xmlns:ns="http://org.apache.synapse/xsd" name="Status" expression="$axis2:HTTP_SC" scope="default" type="STRING"/>
选择一个处理器,然后将所有返回给用户
<switch xmlns:ns="http://org.apache.synapse/xsd" source="$axis2:HTTP_SC">
<case regex="401">
<send/>
</case>
在这种情况下,一切正常。这里只是一个用户按原样获取 HTML 服务器响应。
但!当您尝试像这样替换响应的主体时
<case regex="401">
<payloadFactory media-type="xml">
<format>
<error xmlns="">
<message>some message</message>
</error>
</format>
</payloadFactory>
<send/>
我收到一个错误
[2013-09-11 15:20:06,669] ERROR - AnonymousListMediator Error while building messageorg.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxParsingException: Unexpected lose tag </head>; expected </link>. at [row,col {unknown-source}]: [13,6] at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)
是否任何尝试替换答案(甚至通过故障调解器)都会导致此错误。有任何想法吗?