【问题标题】:JSF faces flow throws the error "Flow already exists"JSF 面临流抛出错误“流已存在”
【发布时间】:2019-08-21 20:13:49
【问题描述】:

我的环境:

JSF 2.3,Mojarra 2.3.9.payara-p2

PrimeFaces 7.0

Payara 5.192

OmniFaces 3.3

Java EE 8 Maven 项目

NetBeans 11.1

我创建了一个 Faces 流:

文件夹“flotTransfer”仅包含 2 个文件(目前)flotTransfert-flow.xml 和 flotTransfert.xhtml。

我无法部署应用程序。我收到这条消息: " 加载应用程序时出现异常:java.lang.IllegalStateException:ContainerBase.addChild:开始:org.apache.catalina.LifecycleException:java.lang.RuntimeException:java.lang.IllegalStateException:ID为“flotTransfert”和definingDocumentId“”的流已经存在.|#] ”。

我不明白为什么会出现这个错误(为什么“已经存在”?)。服务器上没有部署其他应用程序。

flotTransfert-flow.xml的内容:

<faces-config version="2.3"
              xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_3.xsd">
  <flow-definition id="flotTransfert">
    <flow-return id="sortieFlot">
      <from-outcome>/listeComptes</from-outcome>
    </flow-return> 
  </flow-definition>
</faces-config>

如果我重命名此文件,则不会再出现错误,并且应用程序已部署在服务器上,但显然,人脸流程不起作用。

如果我保留文件但删除文件的所有内容(我注释掉所有行),我会得到同样的错误。

我在另一个应用程序中拥有几乎相同的面孔流(文件夹中只有更多页面),但使用 Java EE 7 和 Payara 5.184 且没有 OmniFaces,并且流程正常。

【问题讨论】:

    标签: jsf jsf-2.3 faces-flow


    【解决方案1】:

    对不起,我犯了一个错误:我用我的 IDE 的向导添加了文件 flotTransfert-flow.xml,我没有注意到这个向导在文件 web.xml 中添加了 &lt;context-param&gt;,引用了定义文件的流量。如果我删除这个&lt;context-param&gt;,一切正常。

    我从 web.xml 中删除的行:

    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/flotTransfert/flotTransfert-flow.xml</param-value>
    </context-param>
    

    【讨论】:

      猜你喜欢
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多