Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Springbean接收/发送vm://mule消息?_Java_Spring_Mule_Mule Component - Fatal编程技术网

Java 如何从Springbean接收/发送vm://mule消息?

Java 如何从Springbean接收/发送vm://mule消息?,java,spring,mule,mule-component,Java,Spring,Mule,Mule Component,我想实例化一个bean并向流发送/接收vm://消息。我遵循了,但是被重写的方法没有得到任何消息。我是否需要实例化VM连接器并首先将其引用传递给实现MuleSubscriptionEventListener的bean?通常,Mule鼓励开发人员不再使用VM端点,请参见示例 引述: VM传输通常用于实现复杂的集成 由多个应用程序组成。Mule 3的改进消除了 在许多情况下需要虚拟机。您可以使用流引用直接 参考一个流从另一个没有中间的运输。< /P> 我真的会考虑流量参考,它们要好得多。对于VM端点

我想实例化一个bean并向流发送/接收vm://消息。我遵循了,但是被重写的方法没有得到任何消息。我是否需要实例化VM连接器并首先将其引用传递给实现MuleSubscriptionEventListener的bean?

通常,Mule鼓励开发人员不再使用VM端点,请参见示例

引述:

VM传输通常用于实现复杂的集成 由多个应用程序组成。Mule 3的改进消除了 在许多情况下需要虚拟机。您可以使用流引用直接 参考一个流从另一个没有中间的运输。< /P> 我真的会考虑流量参考,它们要好得多。对于VM端点,Mule创建了一个完全不同的东西(在消息负载的头中传递变量)等等

VM端点只有在您希望使某些子流能够从外部调用时才有意义,例如从单元测试调用

我认为您链接的文档中描述的实现相当复杂。为什么不简单地将Java组件放入链接到Springbean的Mule流中?这样,您就可以完全控制从Mule到Spring的调用。它可以是Java转换器或Java组件。我认为到目前为止,Java组件听起来更像您所需要的:


请参阅:

VM在许多情况下都是完全有效的,特别是在使用HA集群的Mule EE中

如果您需要从spring引用的java组件发送到vm,那么您有两个选项需要考虑:

  • 使用带有MuleContext的 ,从a或注射)
  • 或使用

我的目标是拥有一个可重用的组件,我只需插入并配置其他流即可向其发送消息或接收消息。我考虑了流引用,但是VM更适合我的情况,因为具有不同类型的队列将帮助我区分消息,并根据接收消息的队列采取一些特定的操作。如果要使用流引用,我必须设置一些消息属性,这会使流变得混乱。您可以添加一些代码来演示MuleClient的使用,或者提供更多详细信息吗?请参阅下面的代码,了解如何在Spring引用的java类中使用mule客户端触发VM:@Override public Object onCall(MuleEventContext eventContext)引发异常{MuleContext context=eventContext.getMuleContext();MuleClient client=(MuleClient)context.getClient();eventContext.getMessage().setPayload(“恭喜,mule客户端类”);MuleMessage message message=client.send(“vm://testVmpath”,(MuleMessage)eventContext.getMessage());Victor说得对,如果将VM端点建模到流中,流将从集群中的一个节点跳到另一个节点。问题只是:这样做不会提高性能!它只会从一个节点跳到另一个节点。如果流为进程跳过多个节点,那么读取日志可能会非常困难单个执行的essing。如果要控制集群的负载,应使用一些平衡节点的代理。流引用提供类似于VM端点的“处理策略”(同步、同步、多线程等)事实上.HA代表高可用性而不是高性能。感谢您的代码片段。它应该可以用于发送,但我如何订阅以接收VM消息?