0

我正在使用 wso2 esb 4.0.3,但在使调解器工作时遇到了一些问题。

问题出在给定的模式上,即使我发送了正确的soap请求,验证调解器也会评估无效的请求,因此在失败时配置的序列总是被执行

<inSequence>   
    <validate source="$body/reg:RegistrationServiceRequest">
         <on-fail>
                <sequence key="registrationFaultSequence"/>
         </on-fail>
         <schema key="gov:com/testcompany/RegistrationWrapperAttributeTypes.xsd"/>
         <schema key="gov:com/testcompany/RegularRegistrationWrapperTypes.xsd"/>
    </validate>
    .....
</inSequence>

我也通过SoapUI验证了soap请求的有效性,它说请求是有效的,但wso2认为它是无效的

有人可以建议上述配置有什么问题吗?

谢谢小号

4

2 回答 2

1

在不知道触发此问题的确切原因的情况下,很难确定任何事情。但是,您只需按照下面描述的方式将“日志”调解器放在“on-fail”元素中,就可以找到更多信息,并了解真正出了什么问题。请发布日志调解器的“输出”,以便我们进一步深入研究。

<log level="custom">
   <property name="MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
</log>

干杯,普拉巴斯

于 2012-10-17T19:15:30.017 回答
1

您应该在失败之前声明架构,并同时提及资源。

<validate cache-schema="true" description="ValidateCustomerRequest" source="//Customer:Customer" xmlns:Customer="some namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <schema key="gov:custom/Customer.xsd"/>
    <resource key="gov:custom/Customer.xsd" location="Customer.xsd"/>
    <on-fail>
        <makefault version="soap11">
            <code value="soap11Env:VersionMismatch" xmlns:soap11Env="http://schemas.xmlsoap.org/soap/envelope/"/>
            <reason value="Request is Invalid"/>
        </makefault>
    </on-fail>
</validate>
于 2018-03-22T09:53:15.643 回答