簡體   English   中英

肥皂到剩余轉換期間wso2 esb的意外行為

[英]Unexpected behavior from wso2 esb during soap to rest conversion

我已經使用WSO2 ESB構建了一個代理服務,我想使用它來將REST Web服務(來自某個隨機供應商)作為SOAP Web服務公開給另一個隨機供應商。 我有麻煩的問題是肥皂方法之一根本沒有用。 有問題的方法是“ myVendorBpmInsereCliente”。 我真正感到困惑的是,幾乎相同的方法“ myVendorBpmAtualizaCliente”確實起作用! 我收到錯誤代碼405(http響應代碼),因為屬性中介程序“ REST_URL_POSTFIX”似乎沒有將其余路徑附加到uri。

序列:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="cadastroMyVendor" transports="https,http" statistics="enable" trace="enable" startOnLoad="true">
<target>
    <inSequence>
        <property name="request_action" expression="get-property('Action')"/>
        <switch source="get-property('request_action')">
            <case regex="myVendorBpmConsultaPeriodo">
                <property name="chave" value="myKey" scope="default" type="STRING"/>
                <property name="datainicio" expression="//datainicio" scope="default" type="STRING"/>
                <property name="datafim" expression="//datafim" scope="default" type="STRING"/>
                <property name="queryparams" expression="fn:concat('consulta/periodo?chave=',get-property('chave'))" scope="default" type="STRING"/>
                <property name="queryparams" expression="fn:concat(get-property('queryparams'),'&datainicio=')" scope="default" type="STRING"/>
                <property name="queryparams" expression="fn:concat(get-property('queryparams'),get-property('datainicio'))" scope="default" type="STRING"/>
                <property name="queryparams" expression="fn:concat(get-property('queryparams'),'&datafim=')" scope="default" type="STRING"/>
                <property name="queryparams" expression="fn:concat(get-property('queryparams'),get-property('datafim'))" scope="default" type="STRING"/>
                <property name="REST_URL_POSTFIX" expression="get-property('queryparams')" scope="axis2" type="STRING"/>
                <property name="HTTP_METHOD" value="GET" scope="axis2" type="STRING"/>
                <log level="full"/>
            <case regex="myVendorBpmInsereCliente">
                <property name="chave" value="myKey" scope="default" type="STRING"/>
                <property name="queryparams" expression="fn:concat('cliente/novo?chave=',get-property('chave'))" scope="default" type="STRING"/>
                <property name="REST_URL_POSTFIX" expression="get-property('queryparams')" scope="axis2" type="STRING"/>
                <property name="HTTP_METHOD" value="POST" scope="axis2" type="STRING"/>
                <xslt key="conf:/repository/scripts/dropTheSoap.xsl"/>
            </case>
            <case regex="myVendorBpmAtualizaCliente">
                <property name="chave" value="myKey" scope="default" type="STRING"/>
                <property name="queryparams" expression="fn:concat('cliente/atualiza?chave=',get-property('chave'))" scope="default" type="STRING"/>
                <property name="REST_URL_POSTFIX" expression="get-property('queryparams')" scope="axis2" type="STRING"/>
                <property name="HTTP_METHOD" value="PUT" scope="axis2" type="STRING"/>
                <xslt key="conf:/repository/scripts/dropTheSoap.xsl"/>
            </case>
            <default>
                <!-- code omitted -->
            </default>
        </switch>
        <send>
           <endpoint key="gov:/trunk/endpoints/myKey"/>
              <address uri="http://somehost:8080/STL-WS/myVendor/" format="pox"/>
           <endpoint key="gov:/trunk/endpoints/myKey"/>
        </send>
    </inSequence>
    <outSequence>
        <send/>
    </outSequence>
</target>
<description></description>

這是我從wso2-esb-trace得到的:

16:26:51,090 [-] [HttpClientWorker-10] INFO TRACE_LOGGER End : Send mediator 16:26:51,090 [-] [HttpClientWorker-10] INFO TRACE_LOGGER End : Sequence <anonymous> 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Proxy Service cadastro_myVendor received a new message from : 127.0.0.1 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Message To: /services/cadastro_myVendor 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER SOAPAction: myVendorBpmInsereCliente 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER WSA-Action: myVendorBpmInsereCliente 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Using the anonymous in-sequence of the proxy service for mediation 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : Sequence <anonymous> 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Sequence <SequenceMediator> :: mediate() 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Setting property : request_action at scope : default to : myVendorBpmInsereCliente (ie result of expression : get-property('Action')) 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER End : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : Switch mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER XPath : get-property('request_action') evaluates to : myVendorBpmInsereCliente 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Matching case found : myVendorBpmInsereCliente 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Sequence <AnonymousListMediator> :: mediate() 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Setting property : chave at scope : default to : myKey (ie constant : myKey) 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER End : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Setting property : queryparams at scope : default to : cliente/novo?chave=myKey (ie result of expression : fn:concat('cliente/novo?chave=',get-property('chave'))) 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER End : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Setting property : REST_URL_POSTFIX at scope : axis2 to : cliente/novo?chave=myKey (ie result of expression : get-property('queryparams')) 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER End : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : XSLT mediator 16:26:51,324 [-] [HttpServerWorker-15] WARN TRACE_LOGGER Warning encountered during stylesheet parsing : javax.xml.transform.TransformerConfigurationException: The attribute axis starting at an attribute node will never select anything 16:26:51,324 [-] [HttpServerWorker-15] WARN TRACE_LOGGER Warning encountered during stylesheet parsing : javax.xml.transform.TransformerConfigurationException: The child axis starting at an attribute node will never select anything 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER output method: xml; encoding: ISO-8859-1 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Using org.apache.synapse.util.jaxp.StreamSourceBuilder 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Using org.apache.synapse.util.jaxp.StreamResultBuilder 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Transformation completed - processing result 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Replace node with result 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER End : XSLT mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Setting property : HTTP_METHOD at scope : axis2 to : POST (ie constant : POST) 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER End : Property mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Start : Send mediator 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER Sending message through endpoint : gov//trunk/endpoints/myVendor resolving to address = http://somehost:8080/STL-WS/myVendor/ 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER SOAPAction: myVendorBpmInsereCliente 16:26:51,324 [-] [HttpServerWorker-15] INFO TRACE_LOGGER WSA-Action: myVendorBpmInsereCliente 16:26:51,340 [-] [HttpServerWorker-15] INFO TRACE_LOGGER End : Send mediator 16:26:51,340 [-] [HttpServerWorker-15] INFO TRACE_LOGGER End : Sequence <anonymous> 16:26:51,355 [-] [HttpClientWorker-11] INFO TRACE_LOGGER Start : Sequence <anonymous> 16:26:51,355 [-] [HttpClientWorker-11] INFO TRACE_LOGGER Sequence <SequenceMediator> :: mediate() 16:26:51,371 [-] [HttpClientWorker-11] ERROR TRACE_LOGGER Error while building message_

在另一次嘗試中,我添加了一個自定義日志介體來記錄表達式的值:$ axis2:REST_URL_POSTFIX,結果是我期望的結果:“ cliente / novo?chave = myKey”。 請注意,出於說明目的,我更改了序列中的端點。 我正在使用作為服務運行的WSO2 ESB版本4.6.0。 有任何建議嗎?

您能否將端點格式更改為rest並檢查是否可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM