webflow测试,无法找到流模型

时间:2011-06-21 08:57:43

标签: java spring spring-webflow

我有这个非常恼人的问题,我无法弄明白。

这是我的webflow项目的主要结构:

  • WEB-INF /流/碱性/基本-flow.xml
  • WEB-INF /流/错误/错误flow.xml

错误流包含常见的异常处理,并且是抽象的。基本流将错误流作为父级。

当我尝试编写JUnit测试时,我遇到了无法加载错误流的问题。我已经自己测试了基本(只是删除了父属性),它工作得很好。对我可能做错的任何建议?

以下是测试代码的重要部分:

@Override
protected FlowDefinitionResource getResource(FlowDefinitionResourceFactory resourceFactory) {
    return resourceFactory.createFileResource("src/main/webapp/WEB-INF/flows/basic/basic-flow.xml");
}

@Override
protected FlowDefinitionResource[] getModelResources(FlowDefinitionResourceFactory resourceFactory) {
    FlowDefinitionResource flowDefinitionResource = resourceFactory
            .createFileResource("src/main/webapp/WEB-INF/flows/error/error-flow.xml");

    return new FlowDefinitionResource[] { flowDefinitionResource };
}

public void testStartBasicFlow() {
    MockExternalContext context = new MockExternalContext();
    startFlow(context);
}

我得到的例外是:

Caused by: org.springframework.webflow.engine.model.registry.NoSuchFlowModelException: No flow model 'error' found

1 个答案:

答案 0 :(得分:1)

对于您的error流程您应该明确传递flowId

FlowDefinitionResource flowDefinitionResource = resourceFactory.createResource(
    "src/main/webapp/WEB-INF/flows/error/error-flow.xml", null, "error");

使用FlowDefinitionResource.createFileResource(..)时,flowIdFlowDefinitionResource.getFlowId(..)的结果,在您的案例中可能无法评估为error