【问题标题】:How to handle Endpoint warnings in wso2esb如何处理 wso2esb 中的端点警告
【发布时间】:2015-01-30 11:02:19
【问题描述】:

我正在使用 wso2 esb 4.8.1, 我希望处理端点警告。我正在尝试在 tomcat 服务器中访问 CXF 服务。 如果我在 tomcat 中使用错误的操作(操作/方法)名称或服务名称进行测试。 我在 SOAP 中收到此消息。

<html>
   <body>No service was found.</body>
</html>

在我的 wso2esb 中没有记录任何错误并且特定端点未能显示此消息。

[2014-11-24 16:57:57,931]  WARN - LoadbalanceEndpoint Endpoint [ServiceLEP] Detect a Failure in a child endpoint : Endpoint [EP3]

由于我不知道 CXF 我希望在 wso2esb 中处理这个问题我将如何处理这个消息并向客户端发送正确的错误响应。 有没有人能帮助我。 提前致谢。

【问题讨论】:

    标签: wso2 tomcat7 cxf wso2esb synapse


    【解决方案1】:

    如果您使用调解器,则响应将在 inSequence 中可用。您可以在调解员之后使用如下代码记录该响应:

    <enrich> 
        <source type="body"/> 
        <target type="property" action="child" property="response_body"/> 
    </enrich> 
    <log level="custom"> 
        <property name="The Response" expression="get-property('response_body')"/> 
    </log> 
    

    请告知这是否适用于您的场景。

    【讨论】:

    • 发送中介后上述代码有什么用我保留此代码我收到请求部分没有收到任何错误,所以我保留在 OutSequence 但它不打印,发送后流程正在丢弃。
    【解决方案2】:

    如果您的端点被挂起,那么 WSO2 默认启动故障序列,您可以在故障序列中定义您的自定义消息,然后根据需要将其发送回客户端。您可以从 WSO2 的 Log 或 Switch 调解器中获取 ERROR_CODE 和 ERROR_MESSAGE 属性,您可以在其中检查它。在日志中你可以这样做:

     <log level="full" separator="**********Fault Sequence File Processor***********">
          <property name="ErrorCode" expression="get-property('ERROR_CODE')"></property>
          <property name="ErrorMessage" expression="get-property('ERROR_MESSAGE')"></property>
          <property name="ErrorDetail" expression="get-property('ERROR_DETAIL')"></property>
          <property name="ErrrorException" expression="get-property('ERROR_EXCEPTION')"></property>
       </log>
    

    您可以在 Switch 中介器中检查 ERROR_CODE 属性或 ERROR_MESSAGE 属性,然后在 Payload 中介器的帮助下,您可以定义您的自定义错误消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 2017-08-23
      • 2016-04-15
      • 2020-06-02
      • 2013-03-30
      相关资源
      最近更新 更多