如何在 MULE ESB 的 java 转换器中获取 HTTP 参数
How to fetch HTTP parameters in java transformer in MULE ESB
我对 Mule ESB 和 Anypoint Studio 有点陌生,所以我想弄清楚如何在 java 转换器 class.
中获取 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");
但它们 return 空值,我什至尝试使用可调用接口,但我认为只有当它是 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;
}
}
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>
现在,如果您使用查询参数点击 url,例如:- http://localhost:8081/test?fname=anirban&lname=sen
您将在控制台中获得以下结果:-
您还可以通过下面的单独方法获得 属性。
public class MyCustomTransformer 扩展了 AbstractMessageTransformer {
@覆盖
public 对象 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;
}
}
我对 Mule ESB 和 Anypoint Studio 有点陌生,所以我想弄清楚如何在 java 转换器 class.
中获取 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");
但它们 return 空值,我什至尝试使用可调用接口,但我认为只有当它是 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;
}
}
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>
现在,如果您使用查询参数点击 url,例如:- http://localhost:8081/test?fname=anirban&lname=sen
您将在控制台中获得以下结果:-
您还可以通过下面的单独方法获得 属性。
public class MyCustomTransformer 扩展了 AbstractMessageTransformer { @覆盖 public 对象 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;
}
}