【问题标题】:webflow testing, unable to find flow modelwebflow测试,找不到流模型
【发布时间】:2011-06-21 18:30:50
【问题描述】:

我有一个非常烦人的问题,我无法弄清楚。

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

  • WEB-INF/flows/basic/basic-flow.xml
  • WEB-INF/flows/error/error-flow.xml

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

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

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

@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

【问题讨论】:

    标签: java spring spring-webflow


    【解决方案1】:

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

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

    当使用FlowDefinitionResource.createFileResource(..) 时,flowIdFlowDefinitionResource.getFlowId(..) 的结果,在您的情况下可能不会评估为error

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-06
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多