2017-02-20 7 views
0

Я новичок в Mule, пока я запускал приложение Mule, я устанавливаю значение «op» из параметров запроса. Позже я использую то же самое, чтобы определить, какой вариант в «выборе» должен быть выполнен. Как-то я вижу, что каждое значение времени установлено как «div», а в журналах я обнаруживаю, что это связано с областью действия Invocation (я думаю).Как свойство ограниченной области INVOCATION установлено в mule

Может кто-то помочь мне здесь, Ниже находится журнал, а под ним находится xml.

INVOCATION scoped properties: 
    **op**=div 
    var1=12 
    var2=3 
    INBOUND scoped properties: 
    accept=*/* 
    accept-encoding=gzip, deflate, sdch 
    accept-language=en-US,en;q=0.8 
    cache-control=no-cache 
    connection=keep-alive 
    host=localhost:8081 
    http.listener.path=/samples 
    http.method=GET 
    http.query.params=ParameterMap{[**op**=[sub], a=[12], b=[3]]} 
    http.query.string=**op**=sub&a=12&b=3 
    http.relative.path=/samples 
    http.remote.address=/127.0.0.1:8503 
    http.request.path=/samples 
    http.request.uri=/samples?op=sub&a=12&b=3 
    http.scheme=http 
    http.uri.params=ParameterMap{[]} 
    http.version=HTTP/1.1 
    postman-token=8cfdd0be-5204-1d8a-9b0e-c829c7ddeb9e 
    user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36 
    OUTBOUND scoped properties: 
    SESSION scoped properties: 

XML

<?xml version="1.0" encoding="UTF-8"?> 
 

 
<mule xmlns:validation="http://www.mulesoft.org/schema/mule/validation" xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:db="http://www.mulesoft.org/schema/mule/db" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
 
\t xmlns:spring="http://www.springframework.org/schema/beans" 
 
\t xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
\t xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
 
http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd 
 
http://www.mulesoft.org/schema/mule/validation http://www.mulesoft.org/schema/mule/validation/current/mule-validation.xsd 
 
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd"> 
 
    <http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081" doc:name="HTTP Listener Configuration"/> 
 
    <db:mysql-config name="MySQL_Configuration" host="mudb.mulesoft-training.com" port="3306" user="mule" password="mule" database="training" doc:name="MySQL Configuration"/> 
 
    <sub-flow name="sub_expression"> 
 
     <expression-component doc:name="sub exp"><![CDATA[import java.lang.Double; 
 

 
double firstValue = flowVars.var1; 
 
double secondValue = flowVars.var2; 
 
double result = (firstValue) - (secondValue); 
 
payload = result]]></expression-component> 
 
     <set-payload value="Result is: #[payload]" doc:name="Set Payload"/> 
 
    </sub-flow> 
 
    <sub-flow name="Multiplication_expression"> 
 
     <expression-component doc:name="mul Exp"><![CDATA[import java.lang.Double; 
 

 
double firstValue = flowVars.var1; 
 
double secondValue = flowVars.var2; 
 
double result = (firstValue) * (secondValue); 
 
payload = result]]></expression-component> 
 
     <set-payload value="Result is: #[payload]" doc:name="Set Payload"/> 
 
    </sub-flow> 
 
    <sub-flow name="Div_expression"> 
 
     <expression-component doc:name="Div Exp"><![CDATA[import java.lang.Double; 
 

 
double firstValue = flowVars.var1; 
 
double secondValue = flowVars.var2; 
 
double result = (firstValue)/(secondValue); 
 
payload = result]]></expression-component> 
 
     <set-payload value="Result is: #[payload]" doc:name="Set Payload"/> 
 
    </sub-flow> 
 
    <sub-flow name="Set_Flow_Variables"> 
 
     <set-variable variableName="var1" value="#[message.inboundProperties.get('http.query.params').get('a')]" metadata:id="8354c885-e13c-4ed8-be46-38e65107898f" doc:name="Variable1"/> 
 
     <set-variable variableName="var2" value="#[message.inboundProperties.get('http.query.params').get('b')]" metadata:id="d18ef85a-f8d6-4a0b-9076-159ff9b51bca" doc:name="Variable2"/> 
 
     <set-variable variableName="op" value="#[message.inboundProperties.get('http.query.params').get('op')] " metadata:id="22fd48bf-7d8c-4b09-a0a3-60f4a7ccbd89" doc:name="Variable"/> 
 
    </sub-flow> 
 
    <sub-flow name="Choice"> 
 
     <choice tracking:enable-default-events="true" doc:name="Choice"> 
 
      <when expression="#[flowVars.op = 'div']"> 
 
       <flow-ref name="Div_expression" doc:name="Div_expression"/> 
 
      </when> 
 
      <when expression="#[flowVars.op = 'mul']"> 
 
       <flow-ref name="Multiplication_expression" doc:name="Multiplication_expression"/> 
 
      </when> 
 
      <when expression="#[flowVars.op = 'sub']"> 
 
       <flow-ref name="sub_expression" doc:name="sub_expression"/> 
 
      </when> 
 
      <otherwise> 
 
       <set-payload value="invalid operator" doc:name="Set Payload"/> 
 
      </otherwise> 
 
     </choice> 
 
    </sub-flow> 
 
    <flow name="sampleprojectFlow"> 
 
     <http:listener config-ref="HTTP_Listener_Configuration" path="/samples" allowedMethods="GET,POST" doc:name="HTTP"/> 
 
     <flow-ref name="Set_Flow_Variables" doc:name="Set_Flow_Variables"/> 
 
     <flow-ref name="Choice" doc:name="Choice"/> 
 
     <logger level="INFO" doc:name="Logger"/> 
 

 
    </flow> 
 
</mule>

ответ

0

вопрос является равенство оператора. Неправильно, вместо этого вы назначаете .

  • Выпуск: #[flowVars.op = 'div']
  • Решение: #[flowVars.op == 'div']
Смежные вопросы