2017-03-29 43 views
0

我在Mule ESB和Anypoint Studio中有點新,所以我想弄清楚如何在java變量類中獲取HTTP查詢參數。如何在MULE ESB中獲取Java變量中的HTTP參數ESB

我已經試過

String firstname = message.getInboundProperty("fname"); 
String lastName = message.getInboundProperty("lname"); 

即使

Map<String, String> queryParams = message.getInboundProperty("http.query.params"); 
String firstname = queryParams.get("fname"); 
String lastname = queryParams.get("lname"); 

去,但他們返回空值,我甚至嘗試使用可調用接口,但我想它,如果它是一個只可以使用它JAVA組件。

請讓我知道,

謝謝。

回答

2

如果你想在Java變壓器使用,你可以按照下面的例子: -

public class MyCustomTransformer extends AbstractMessageTransformer { 
@Override 
public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException { 

    Map<String, String> queryParams = message.getInboundProperty("http.query.params"); 
    String fname=queryParams.get("fname"); 
    System.out.println("fname: "+fname); 
    String lname=queryParams.get("lname"); 
    System.out.println("lname: "+lname); 
    return message; 

} 
} 

和Mule流程將是: -

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/> 

<flow name="Testlow"> 
    <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/> 
    <custom-transformer class="MyCustomTransformer" doc:name="Java"/> 
</flow> 

現在,如果你打的網址查詢參數例如: - http://localhost:8081/test?fname=anirban&lname=sen

您將在控制檯中獲得以下結果: -

enter image description here

+0

燁它的工作現在使用地圖。有趣的是,我想知道我第一次嘗試了什麼? – charle819

0

您也可以在下面單獨獲取財產。

公共類MyCustomTransformer擴展AbstractMessageTransformer { @覆蓋 公共對象transformMessage(MuleMessage消息,字符串outputEncoding)拋出TransformerException中{

 Map<String, String> queryParams = 
     message.getProperty("http.query.params", PropertyScope.INVOCATION); 
     String fname=queryParams.get("fname"); 
     System.out.println("fname: "+fname); 
     String lname=queryParams.get("lname"); 
     System.out.println("lname: "+lname); 
     return message; 

    } 
    }