在未向客户端传递响应的Wso2ESB中如何处理此问题
我在多个表中插入,其中一些是直接插入,另一些是我们需要拆分,这意味着使用迭代中介,我使用了两个代理和添加错误序列,插入也可以,如果我的DSS关闭,它将正确的错误传递给客户端。问题是当DSS中出现错误时,如..primarykey voilation,我添加了此属性在每个序列中都是在未向客户端传递响应的Wso2ESB中如何处理此问题,wso2,wso2esb,wso2dss,Wso2,Wso2esb,Wso2dss,我在多个表中插入,其中一些是直接插入,另一些是我们需要拆分,这意味着使用迭代中介,我使用了两个代理和添加错误序列,插入也可以,如果我的DSS关闭,它将正确的错误传递给客户端。问题是当DSS中出现错误时,如..primarykey voilation,我添加了此属性在每个序列中都是,即使其抛出方式与此错误类似 ERROR - NativeWorkerPool Uncaught exception org.apache.axiom.om.OMException: com.ctc.wstx.exc.
,即使其抛出方式与此错误类似
ERROR - NativeWorkerPool Uncaught exception
org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxParsingException: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs.
at [row,col {unknown-source}]: [1,167]
它给出了ESB端错误,如上所述,我附加了我的错误序列
<sequence xmlns="http://ws.apache.org/ns/synapse" name="fault">
<property xmlns:ns="http://org.apache.synapse/xsd" name="actionid" expression="get-property('actionid')"/>
<property xmlns:ns="http://org.apache.synapse/xsd" name="actiondetailid" expression="get-property('actiondetailid')"/>
<dbreport>
<connection>
<pool>
<password>Youtility11</password>
<user>youtilitydba</user>
<url>jdbc:postgresql://localhost:5432/USCProduction</url>
<driver>org.postgresql.Driver</driver>
</pool>
</connection>
<statement>
<sql>
<![CDATA[ delete from tactiondetail where actiondetailid=?]]></sql>
<parameter xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('actiondetailid')" type="BIGINT"/>
</statement>
</dbreport>
<log level="full"/>
<dbreport>
<connection>
<pool>
<password>Youtility11</password>
<user>youtilitydba</user>
<url>jdbc:postgresql://localhost:5432/USCProduction</url>
<driver>org.postgresql.Driver</driver>
</pool>
</connection>
<statement>
<sql>
<![CDATA[ delete from tactiondetail where actionid=?]]></sql>
<parameter xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('actionid')" type="BIGINT"/>
</statement>
</dbreport>
<log>
<property name="MESSAGE" value="Executing default 'fault' sequence"/>
<property xmlns:ns="http://org.apache.synapse/xsd" name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
<property xmlns:ns="http://org.apache.synapse/xsd" name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
</log>
<switch xmlns:ns="http://org.apache.synapse/xsd" source="get-property('ERROR_CODE')">
<case regex="500000">
<property name="ERROR_MESSAGE" value="duplicate key value violates or The system is attempting to access an inactive service " scope="default" type="STRING"/>
</case>
<case regex="101503">
<property name="ERROR_MESSAGE" value="Error connecting to the back end" scope="default" type="STRING"/>
</case>
</switch>
<payloadFactory>
<format>
<ResponseJSON xmlns="">
<Exception>$1</Exception>
<Status>$2</Status>
<Total>0</Total>
</ResponseJSON>
</format>
<args>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('ERROR_MESSAGE')"/>
<arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('ERROR_CODE')"/>
</args>
</payloadFactory>
<header name="To" action="remove"/>
<property name="RESPONSE" value="true" scope="default" type="STRING"/>
<property name="NO_ENTITY_BODY" action="remove" scope="axis2"/>
<log level="full"/>
<send/>
</sequence>
正如错误所说:“非法处理指令目标(“xml”);xml(不区分大小写)由规范保留。”似乎您在从DSS返回的响应中使用了保留字“xml”。请仔细检查来自DSS的XML响应,并通过XML验证器(可能使用EclipseXML验证器)运行响应,以查看响应是否正常 请参考包含建议答案的[thread][1]。[1] :禁用WSO2DSS中的Distributed复选框您是否解决了问题@faisal.shaik?
Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal processing instruction target ("xml"); xml (case insensitive) is reserved by the specs.
at [row,col {unknown-source}]: [1,167]