Mule:在功能测试用例运行期间没有接收器注册错误

Mule:在功能测试用例运行期间没有接收器注册错误,mule,Mule,我试图为我的mule配置开发一个功能测试用例。代码如下: protected String getConfigResources() { // TODO Auto-generated method stub return "src/test/resources/employee-get-functionalTestCase-config.xml"; } @Test public void testMessage() throws Exce

我试图为我的mule配置开发一个功能测试用例。代码如下:

protected String getConfigResources() {
        // TODO Auto-generated method stub
        return "src/test/resources/employee-get-functionalTestCase-config.xml";
    }

    @Test
    public void testMessage() throws Exception {
        MuleClient client = muleContext.getClient();
        client.dispatch("vm://in", "70009", null);

        MuleMessage result = client.request("vm://out", 60000);
        Assert.assertNotNull("Response payload was null", result);
        Assert.assertNull(result.getExceptionPayload());
        Assert.assertFalse(result.getPayload() instanceof NullPayload);
&以下是我的XMl文件的上下文:

<spring:beans>
        <context:property-placeholder location="classpath:mule-app.properties"/>
    </spring:beans>
    <flow name="testFlow">
        <vm:inbound-endpoint path="in"/>
        <logger message="in functional-test-config.xml (v4)" level="INFO" doc:name="Logger"/>
        <set-payload value="70010" doc:name="Use fixed employeeId 70010"/>
        <vm:outbound-endpoint exchange-pattern="request-response" path="employee-profile-get" doc:name="VM"/>
        <logger message="after employee-profile-get; payload: #[payload]" level="INFO" doc:name="Logger"/>

        <vm:outbound-endpoint path="out"/>
    </flow>

但是,当我执行此代码时,会出现以下错误:

org.mule.api.transport.NoReceiverForEndpointException:endpointUri VM://employee profile get的连接器“connector.VM.mule.default”上没有注册接收器


我在哪里注册vm端点?

对于每个exchange pattern=“request-response”vm端点,必须有一个入站端点

当应用程序在mule studio中运行时,您可能不会得到任何错误(在编译时),但是当消息通过流时,您将得到上述类型的错误

这是因为VM是一个内存队列,在内存队列中,一旦您放入消息,应该有一个接收者来拾取消息。因此,当不在内存队列中时,此错误将弹出,并且仅适用于exchange模式=“请求-响应”,因为您放入消息的流(具有请求-响应的出站端点)将等待来自vm端点“employee profile get”的响应

要描述相同的错误,请使用localhost http端点替换,然后尝试调用http端点

为了避免这种情况,使用path=“employee profile get”创建另一个入站端点为vm的流,并使用set payload component返回一个字符串。然后您的测试用例就可以工作了

问候,, 纳文拉杰