2013-12-22 62 views
0

我使用wso2 esb代理服務,在我的一個序列中,我希望在發送到端點之前刪除標頭,但它在soapUI中不能正常工作但是在ESB中的「嘗試此服務」中工作。 ,這裏是我的序源視圖:在wso2 esb中更改標頭

<sequence xmlns="http://ws.apache.org/ns/synapse" name="SECBalanceInQueryYaghout"> 
<log level="full" category="FATAL"/> 
<header name="Action" scope="default" action="remove"/> 
<property xmlns:ns="http://org.apache.synapse/xsd"  xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:p="http://tempuri.org/"  name="MethodName" expression="local-name(//*[local-name()='Body']/*[1])" scope="default"  type="STRING"/> 
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="Token" expression="//tem:*[1]/tem:Token" scope="default" type="STRING"/> 
<property name="ElementCode" value="test" scope="default" type="STRING"/> 
<property name="OperationCode" value="temp" scope="default" type="STRING"/> 
<property name="ApplicationCode" value="jj" scope="default" type="STRING"/> 
<property name="applicationPassword" value="123" scope="default" type="STRING"/> 
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="PAN" expression="//tem:*[1]/tem:PAN" scope="default" type="STRING"/> 
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="PIN2" expression="//tem:*[1]/tem:PIN2" scope="default" type="STRING"/> 
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="BillID" expression="//tem:*[1]/tem:billID" scope="default" type="STRING"/> 
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="PayID" expression="//tem:*[1]/tem:payID" scope="default" type="STRING"/> 
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="Amount" expression="//tem:*[1]/tem:amount" scope="default" type="STRING"/> 
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="InvoiceNumber" expression="//tem:*[1]/tem:invoiceNumber" scope="default" type="STRING"/> 
<property xmlns:tem="http://tempuri.org/" xmlns:ns="http://org.apache.synapse/xsd" name="RRN" expression="//tem:*[1]/tem:RRN" scope="default" type="STRING"/> 
<log level="headers"> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="1" expression="$ctx:Token"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="2" expression="$ctx:ElementCode"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="3" expression="$ctx:OperationCode"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="4" expression="$ctx:ApplicationCode"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="5" expression="$ctx:applicationPassword"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="6" expression="$ctx:PAN"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="7" expression="$ctx:PIN2"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="8" expression="$ctx:MethodName"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="9" expression="$ctx:BillID"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="10" expression="$ctx:PayID"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="11" expression="$ctx:Amount"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="12" expression="$ctx:InvoiceNumber"/> 
    <property xmlns:ns="http://org.apache.synapse/xsd" name="13" expression="$ctx:RRN"/> 
</log> 
<log level="headers"/> 
<payloadFactory media-type="xml"> 
    <format> 
    <p:AthorizateOperation xmlns:p="http://tempuri.org/"> 
     <!--0 to 1 occurrence--> 
      <s:tokenStr xmlns:s="http://tempuri.org/">$1</s:tokenStr> 
      <!--0 to 1 occurrence--> 
       <s:PageCode xmlns:s="http://tempuri.org/">$2</s:PageCode> 
       <!--0 to 1 occurrence--> 
       <s:OperationName xmlns:s="http://tempuri.org/">$3</s:OperationName> 
       </p:AthorizateOperation> 
      </format> 
      <args> 
       <arg xmlns:ns="http://org.apache.synapse/xsd" expression="$ctx:Token" evaluator="xml"/> 
       <arg xmlns:ns="http://org.apache.synapse/xsd" expression="$ctx:ElementCode" evaluator="xml"/> 
       <arg xmlns:ns="http://org.apache.synapse/xsd" expression="$ctx:MethodName" evaluator="xml"/> 
      </args> 
     </payloadFactory> 
     <log level="headers" category="WARN"/> 
     <send receive="SECAAAServerReccive" buildmessage="true"> 
      <endpoint> 
       <address uri="http://10.187.105.144:8280/services/AAServer/AthorizateOperation"/> 
      </endpoint> 
     </send> 
    </sequence> 

當我使用的soapUI我得到一個錯誤,這是我的肥皂代碼:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> 
<soapenv:Body> 
    <tem:balanceInquery> 
    <!--Optional:--> 

    <!--Optional:--> 
    <tem:PAN>5047061006204444</tem:PAN> 
    <!--Optional:--> 
    <tem:PIN2>444444</tem:PIN2> 
<tem:Token>test</tem:Token> 
    </tem:balanceInquery> 
    </soapenv:Body> 
</soapenv:Envelope> 

和日誌是:

To: /services/AAServer/AthorizateOperation, WSAction: http://tempuri.org/balanceInquery, SOAPAction: http://tempuri.org/balanceInquery 

我想刪除WSAction標頭和SOAPAction標頭 謝謝。

回答

7

要刪除的SOAPAction:

<header name="Action" action="remove" /> 
<property name="SOAPAction" scope="transport" action="remove" /> 
+0

感謝您的回覆 – behzad