2013-01-03 39 views
0

Ashish再次出現。當使用標頭記錄日誌時返回SOAP請求

我開發了一個路由來分析傳入的SOAP請求並記錄請求中的一些信息。 我使用頭文件和XPATH從SOAP服務請求中獲取信息。該路線成功解析並記錄適當的信息。

的路線如下:

<route streamCache="true"> 

     <from uri="<some URI>"/> 

     <setHeader headerName="SOAPAction"> 
      <constant>http://www.something.com/constant> 
     </setHeader> 

     <setHeader headerName="actionId"> 
      <xpath resultType="java.lang.String">//ws:actionId/text()</xpath> 
      </setHeader> 


    <choice> 

      <when> 
       <xpath>//ws:actionId = '1'</xpath> 
       <to ref="callService" />     
      </when> 

      <otherwise> 

       <log message="Wrong Action ID : ${in.headers.actionId}" 
          loggingLevel="ERROR"/>     

      </otherwise> 

     </choice> 

    </route> 

按照邏輯路由必須重定向到callService URI如果actionId是1,否則應該記錄錯誤動作ID沒有任何響應。

邏輯如果actionId爲1,它會重定向到callService並向調用者發送適當的響應。如果actionId不是1,它會將有關錯誤操作標識的日誌寫入操作標識,但它會將相同的請求作爲響應發送給調用方。

我使用soapUI和Java Socket編程對其進行了檢查。但輸出相同,準確記錄了actionId,但發送了與調用者相同的請求作爲響應。

我不希望有同樣的請求作爲迴應。響應必須是空白的。

任何人都可以幫助我找到解決方案。

問候,

阿希什

回答

0

您需要設置或還有什麼空的手段對你在這種情況下的響應。 響應需要符合WSDL協議的響應。

的,否則添加代碼

因此要設置空響應 例如東西,如:

<otherwise> 
    ... 
    <transform> 
     <constant>NO DATA</constant> 
    </transform> 
</constant> 

雖然還介意你使用駱駝CXF那麼DATAFORMAT選項會影響到空的響應應該如何創建。

+0

再次感謝... 我用你的建議來設置響應,它的工作原理。 我忘了問我的帖子中的真實情況。 爲什麼請求是作爲響應返回的? 我想知道回覆的真實原因。 當我沒有使用標題時,請求沒有作爲響應返回。 是否由於使用標題而返回? 請回答我的問題... –

相關問題