繁体   English   中英

如何将对象从Java文件发送到m子流消息有效负载?

[英]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子流中将提供一个名为variableNameflowVar

HTH。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM