Different behaviors between ESB 4.9.0 and 4.8.1

I have this proxy service in ESB 4.8.1 when I test it with SoapUI 5.2.1. I have a problem:

  • It does not write the full log to the server console when increasing the timeout, but when I change it to user, it works.
  • Does not return any response to SoapUI (payloadFactory does not work)

When I deploy it in ESB 4.9.0, it works fine. Is his mistake from an older version? How can i fix this?

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="StockQuoteProxy"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <send>
            <endpoint>
               <address uri="http://localhost:8089/mockStockQuoteProxySoap11Binding"
                        format="soap11">
                  <timeout>
                     <duration>1000</duration>
                     <responseAction>fault</responseAction>
                  </timeout>
                  <suspendOnFailure>
                     <errorCodes>101500,101501,101506,101507,101508</errorCodes>
                     <initialDuration>2000</initialDuration>
                     <progressionFactor>1.0</progressionFactor>
                     <maximumDuration>3000</maximumDuration>
                  </suspendOnFailure>
                  <markForSuspension>
                     <errorCodes>101504,101505</errorCodes>
                     <retriesBeforeSuspension>3</retriesBeforeSuspension>
                     <retryDelay>1</retryDelay>
                  </markForSuspension>
               </address>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
      <faultSequence>
         <log level="full">
            <property name="FALLO" value="DETALLES DEL ERROR!!"/>
            <property name="message" expression="get-property('ERROR_MESSAGE')"/>
            <property name="code" expression="get-property('ERROR_CODE')"/>
            <property name="detail" expression="get-property('ERROR_DETAIL')"/>
            <property name="exception" expression="get-property('ERROR_EXCEPTION')"/>
         </log>
       <payloadFactory>
       <format>
         <ns:MyResponse xmlns:ns="http://services.samples">
           <ns:Error>Execution Error</ns:Error>
         </ns:MyResponse>
       </format>
     </payloadFactory>
         <header name="To" action="remove"/>
         <property name="RESPONSE" value="true"/>
         <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
         <send/>
      </faultSequence>
   </target>
   <description/>
</proxy>                  

Thanks in advance.

+4
source share
2 answers

Try this error sequence: Steps:

  • Create my reply message.
  • Use the enrichment tool to save the body in the OK property.
  • .
  • OK .

                                                

    <payloadFactory>
        <format>
            <ns:getQuoteResponse xmlns:ns="http://services.samples">
                <ns:return xmlns:ax21="http://services.samples/xsd">
                <status>ERROR</status>
                </ns:return>
            </ns:getQuoteResponse>
        </format>
    </payloadFactory>   
    <log level="full">
       <property name="MESSAGE" value="Mensaje despues del payloadFactory"></property>
    </log>  
    <enrich>
       <source clone="true" type="body"></source>
       <target action="replace" type="property" property="OK"></target>
    </enrich>       
      <makefault version="soap11">
        <code xmlns:soap11Env="schemas.xmlsoap.org/soap/envelope/" value="soap11Env:EdnpointTimeout"/>
        <reason value="timeout fault"/>
        <role/>
      </makefault>
    <enrich>
        <source type="property" clone="true" property="OK"/>
        <target type="body"/>
    </enrich>   
    <log level="full">
       <property name="MESSAGE" value="Mensaje despues del enrich"></property>
    </log>          
    <send/>   
    

+2

-, , . - ?

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
   <soap:Body>
      <ns:MyResponse xmlns:ns="http://services.samples">
         <ns:Error>Execution Error</ns:Error>
      </ns:MyResponse>
   </soap:Body>
</soap:Envelope>

INFO - LogMediator To: /services/StockQuoteProxy.StockQuoteProxyHttpSoap12Endpoint, WSAction: urn:mediate, SOAPAction: urn:mediate, MessageID: urn:uuid:44da8426-00fc-442a-b4e9-1a9a1dd948f2, Direction: request, FALLO = DETALLES DEL ERROR!!, message = Error connecting to the back end, code = 101503, detail = Error connecting to the back end, exception = null, Envelope: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body></soap:Body></soap:Envelope>
0

Source: https://habr.com/ru/post/1627993/


All Articles