从Java类调用Mule流的步骤

从Java类调用Mule流的步骤,mule,flow,Mule,Flow,我是Mule的新手,需要从Java类调用流。有人能给我台阶吗 您可以通过以下步骤来完成 1) 为了进行调用,首先您的流应该将VM作为入站端点 2) 在java代码中,从MuleEventContext获取Mulecontext 3) 从MuleContext获取客户端(),然后使用send方法。下面是示例代码 MuleContext mContext = eventContext.getMuleContext(); mContext.getClient().send(VM URL, pa

我是Mule的新手,需要从Java类调用流。有人能给我台阶吗

您可以通过以下步骤来完成

1) 为了进行调用,首先您的流应该将VM作为入站端点

2) 在java代码中,从MuleEventContext获取Mulecontext

3) 从MuleContext获取客户端(),然后使用send方法。下面是示例代码

MuleContext mContext = eventContext.getMuleContext();
    mContext.getClient().send(VM URL, payload);
send()中的VM URL是VM队列路径的名称(有时可能需要在其前面加上'VM://…'-例如:'VM://myVMQueuePath'


任何问题都让我知道。

我已经尝试过这一点,它确实有效。我已经在任何point studio中创建了java类,并从主流调用java。java正在使用VMQ调用第二个流。这是我的java类。希望这能有所帮助

package mulewithjava;

import org.mule.api.MuleContext;
import org.mule.api.MuleEventContext;
import org.mule.api.MuleMessage;
import org.mule.api.lifecycle.Callable;

public class CallMuleFlow implements Callable {


    @Override
    public Object onCall(MuleEventContext eventContext) throws Exception {
        // TODO Auto-generated method stub

        String  payload = (String) eventContext.getMessage().getPayload();  

        MuleContext mContext = eventContext.getMuleContext();

        MuleMessage msg= eventContext.getMessage();

        mContext.getClient().send("vm://VMQ", msg);

        return "After Flow Calling";
    }



} 

这是用于MUnit测试的吗?为什么需要这样的要求。请确保在集成逻辑中尽量减少java的使用。尝试使用更多的data mapper和data Weavei。您希望在与java类或remote相同的JVM中调用Mule吗?如何获取MuleEventContext的实例,我可以自动连接它吗?questi中的类on不是任何mule类的子类,因此我没有对MuleEventContext的引用。