如何在MULE ESB的java transformer中获取HTTP参数
我对Mule ESB和Anypoint Studio有点陌生,所以我试图弄清楚如何在java transformer类中获取HTTP查询参数 我试过了如何在MULE ESB的java transformer中获取HTTP参数,mule,anypoint-studio,mule-esb,Mule,Anypoint Studio,Mule Esb,我对Mule ESB和Anypoint Studio有点陌生,所以我试图弄清楚如何在java transformer类中获取HTTP查询参数 我试过了 String firstname = message.getInboundProperty("fname"); String lastName = message.getInboundProperty("lname"); 甚至跟 Map<String, String> queryParams = message.getInbound
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");
Map queryParams=message.getInboundProperty(“http.query.params”);
String firstname=queryParams.get(“fname”);
字符串lastname=queryParams.get(“lname”);
但它们返回空值,我甚至尝试过使用可调用接口,但我认为只有当它是JAVA组件时才可能使用它
请让我知道
谢谢。如果您想在Java transformer中使用,可以遵循以下示例:-
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;
}
}
公共类MyCustomTransformer扩展了AbstractMessageTransformer{
@凌驾
公共对象transformMessage(多消息消息、字符串输出编码)引发TransformerException{
Map queryParams=message.getInboundProperty(“http.query.params”);
字符串fname=queryParams.get(“fname”);
System.out.println(“fname:+fname”);
String lname=queryParams.get(“lname”);
System.out.println(“lname:+lname”);
返回消息;
}
}
而骡流将为:-
<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,例如:-
您将在控制台中获得以下结果:-
如果要在Java transformer中使用,可以遵循以下示例:-
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;
}
}
公共类MyCustomTransformer扩展了AbstractMessageTransformer{
@凌驾
公共对象transformMessage(多消息消息、字符串输出编码)引发TransformerException{
Map queryParams=message.getInboundProperty(“http.query.params”);
字符串fname=queryParams.get(“fname”);
System.out.println(“fname:+fname”);
String lname=queryParams.get(“lname”);
System.out.println(“lname:+lname”);
返回消息;
}
}
而骡流将为:-
<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,例如:-
您将在控制台中获得以下结果:-
您也可以通过下面的单独方法获取属性 公共类MyCustomTransformer扩展了AbstractMessageTransformer{ @凌驾 公共对象transformMessage(多消息消息、字符串输出编码)引发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;
}
}
映射查询参数=
message.getProperty(“http.query.params”,PropertyScope.INVOCATION);
字符串fname=queryParams.get(“fname”);
System.out.println(“fname:+fname”);
String lname=queryParams.get(“lname”);
System.out.println(“lname:+lname”);
返回消息;
}
}
您也可以通过下面的单独方法获取属性
公共类MyCustomTransformer扩展了AbstractMessageTransformer{
@凌驾
公共对象transformMessage(多消息消息、字符串输出编码)引发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;
}
}
映射查询参数=
message.getProperty(“http.query.params”,PropertyScope.INVOCATION);
字符串fname=queryParams.get(“fname”);
System.out.println(“fname:+fname”);
String lname=queryParams.get(“lname”);
System.out.println(“lname:+lname”);
返回消息;
}
}
是的,现在可以使用地图了。有趣的是,我想知道我第一次尝试的时候发生了什么?是的,现在使用地图就可以了。有趣的是,我想知道我第一次尝试时发生了什么?