Jsf Primefaces 10 dataTable p:dataExporter在迁移后渲染时生成ArrayIndexOutOfBoundsException

Jsf Primefaces 10 dataTable p:dataExporter在迁移后渲染时生成ArrayIndexOutOfBoundsException,jsf,primefaces,keycloak,exporter,arrayindexoutofboundsexception,Jsf,Primefaces,Keycloak,Exporter,Arrayindexoutofboundsexception,环境: JBoss7.2 素数面10 爪哇11 我已经从primefaces 8迁移到primefaces 10 dataTable p:dataExporter在呈现xhtml时生成ArrayIndexOutOfBoundsException。 当我注释掉dataexporter时,xhtml呈现良好 接下来唯一重要的变化似乎是taht PDF库已从iText切换到Libre OpenPDF 我尝试了两种不同的语境,一种有效,一种无效,不同之处: 它工作的上下文没有身份验证 它不工作的上

环境:

  • JBoss7.2
  • 素数面10
  • 爪哇11
我已经从primefaces 8迁移到primefaces 10 dataTable p:dataExporter在呈现xhtml时生成ArrayIndexOutOfBoundsException。 当我注释掉dataexporter时,xhtml呈现良好

接下来唯一重要的变化似乎是taht PDF库已从iText切换到Libre OpenPDF

我尝试了两种不同的语境,一种有效,一种无效,不同之处:

  • 它工作的上下文没有身份验证
  • 它不工作的上下文具有KeyClock身份验证和两个主题依赖项
我认为这与primefaces主题无关,但可能是因为KeyClope在日志错误中显示了处理请求

为什么要给出这个错误

服务器错误

Persones.xhtml


...
web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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-app_4_0.xsd"
         version="4.0">
...
    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>#{themeSwitcherBean.theme}</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.FONT_AWESOME</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.CSP</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
        <param-value>false</param-value>
    </context-param>
...
</web-app>
...
<context-param>
    <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
    <param-value>false</param-value>
</context-param>
...

...
主题
#{themeSwitcherBean.theme}
primefaces.FONT\u太棒了
真的
primefaces.CSP
真的
javax.faces.STATE_保存方法
服务器
javax.faces.PARTIAL_STATE_保存
假的
...

我终于找到了无法使用p:dataExporter导出文件的问题

xml文件包含上下文参数javax.faces.PARTIAL_STATE_SAVING被定义为false,所以我注释掉了,我工作得很好

web.xml中的问题

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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-app_4_0.xsd"
         version="4.0">
...
    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>#{themeSwitcherBean.theme}</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.FONT_AWESOME</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.CSP</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
        <param-value>false</param-value>
    </context-param>
...
</web-app>
...
<context-param>
    <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
    <param-value>false</param-value>
</context-param>
...
。。。
javax.faces.PARTIAL_STATE_保存
假的
...