[英]How to send an Object from java file to the mule flow message payload?
我正在使用Anypoint Studio。 我已使用esper CEP引擎使用java文件进行事件检测。 一旦检测到事件,我就会从控制台以java.system.out.println(Object)的形式在控制台中输出输出。
我希望将Obejct作为消息属性或有效负载从Java输出发送到m子流,因此我可以将其存储在MongoDB中,也可以将其重用于其他事件检测。 这是我的流程: m子流程
在这里,我希望将“ event.getUnderlying()”对象发送到m子流。
public void update(EventBean[] newData, EventBean[] oldData) {
EventBean event = newData[0];
obj=event.getUnderlying();
if(a2==0){
i++;
System.out.println("Event received:"+i+" "+event.getUnderlying());
提前致谢 :)
只需“发布”到要发送到的流的输入连接器。 因此,对于HTTP输入,请使用org.apache.http.client.HttpClient或HttpUrlConnection之类的东西
(如何使用本网站上的示例很多,还有很多其他示例...)
其他输入具有可以使用的不同库,您可以将其另存为文件,然后让文件输入进行选择。 (取决于您部署的位置)。
如果要通过Component调用Java类(如您的注释中所述),则Java类esper.Test_main必须实现Callable接口。 正确使用Java组件的更多详细信息-https: //docs.mulesoft.com/mule-user-guide/v/3.8/java-component-reference
在这种情况下,您需要实现以下方法:
public Object onCall(MuleEventContext eventContext) {
//your code here
return someObject; // return event.getUnderlying() in your case
}
从onCall()方法返回的对象将作为“有效负载”传递到m子流中的下一个消息处理器。
如果需要从Java类设置流变量:
public Object onCall(MuleEventContext eventContext) {
//your code here
eventContext.getMessage().setInvocationProperty("variableName", "variableValue");
return someObject; // return event.getUnderlying() in your case
}
现在,m子流中将提供一个名为variableName的flowVar 。
HTH。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.