如何在MULE ESB中的java转换器中获取HTTP参数

时间:2017-03-29 08:38:16

标签: mule anypoint-studio mule-esb

我在Mule ESB和Anypoint Studio上有点新鲜,所以我试图弄清楚如何在java变换器类中获取HTTP查询参数。

我试过了

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

甚至和

一起去了
String secques1 = driver.findElement(By.xpath("//*[@class='small-12 medium-4 medium-offset-4 columns']/div/div/div/div[1]/div/div[1]/label")).getText();

String lastWord = secques1.substring(secques1.lastIndexOf(" ")+1);`

但它们返回空值,我甚至尝试使用Callable Interface但我认为只有它是JAVA组件才可以使用它。

请告诉我,

感谢。

2 个答案:

答案 0 :(得分: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;

 }
} 

骡子流将是: -

 <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

答案 1 :(得分:0)

您也可以在下面将财产作为单独的方法。

public class MyCustomTransformer扩展AbstractMessageTransformer {         @覆盖         public Object transformMessage(MuleMessage message,String 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;

     }
     }