【问题标题】:How to fetch HTTP parameters in java transformer in MULE ESB如何在 MULE ESB 中的 Java 转换器中获取 HTTP 参数
【发布时间】:2017-03-29 08:38:15
【问题描述】:

我对 Mule ESB 和 Anypoint Studio 有点陌生,所以我想弄清楚如何在 Java 转换器类中获取 HTTP 查询参数。

我试过了

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");

但它们返回 null 值,我什至尝试使用 Callable Interface 但我认为只有在它是 JAVA 组件时才能使用它。

请告诉我,

谢谢。

【问题讨论】:

    标签: mule anypoint-studio mule-esb


    【解决方案1】:

    如果您想在 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;
    
     }
    } 
    

    骡流将是:-

     <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>
    

    现在,如果您使用查询参数点击 url,例如:- http://localhost:8081/test?fname=anirban&lname=sen

    您将在控制台中得到以下结果:-

    【讨论】:

    • 是的,它现在正在使用 Map 工作。好笑,不知道我第一次尝试发生了什么?
    【解决方案2】:

    您还可以在下面单独获取财产。

    公共类 MyCustomTransformer 扩展 AbstractMessageTransformer { @Override public Object transformMessage(MuleMessage message, String outputEncoding) throws 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;
    
         }
         } 
    

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 2015-09-16
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多