jsf - JSF 面临流抛出错误“流已存在”
问题描述
我的环境:
JSF 2.3,莫哈拉 2.3.9.payara-p2
PrimeFaces 7.0
帕亚拉 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: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.IllegalStateException: Flow with id "flotTransfert"并且定义DocumentId "" 已经存在。|#] "。
我不明白为什么会出现此错误(为什么“已经存在”?)。服务器上没有部署其他应用程序。
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 并且流程有效。
解决方案
抱歉,我犯了一个错误:我使用 IDE 的向导添加了文件 flotTransfert-flow.xml,但我没有注意到该向导<context-param>
在文件 web.xml 中添加了一个引用流定义文件的文件。如果我删除它<context-param>
,一切正常。
我从 web.xml 中删除的行:
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/flotTransfert/flotTransfert-flow.xml</param-value>
</context-param>
推荐阅读
- apache - 仅使用 .htaccess 为主域和子域配置 .htaccess
- php - 如何在 PhpStorm (JetBrains) 中使用条件块启用代码折叠?
- java - Android-TextView设置十进制值不正确打印逗号
- c++ - 类向量上的 C++ 编译问题
- angular - UI-grid 4.7.1 总是得到(错误:无法获取模板 ui-grid/cellEditor:[object Object])
- python - 删除 " 之间的所有非 ASCII 字符
图形”和“” - kubernetes - 将 Helm Hub 添加为 Artifactory 上的远程存储库
- google-sheets - Google表格搜索值并返回存在该值的多行的某些列
- wagtail - 鹡鸰将代码插入主体(流场)
- github - 如何使用 netlify 在 github 中显示报告文件?