与 primefaces 集成时无法加载 jsf.page

     2023-02-27     75

关键词:

【中文标题】与 primefaces 集成时无法加载 jsf.page【英文标题】:can't load jsf.page when integrated with primefaces 【发布时间】:2012-05-26 14:29:36 【问题描述】:

当我想实现 jsf 2.0、primefaces 3.1.1 和 springframework 3.0.2 时遇到问题,我无法在身份验证登录页面成功后加载我的 jsf 页面

netbeans 6.9.1 glassfish 服务器 3.0.1 素面 3.0.1 jsf 2.0 springframework 3.0.2

这是我的 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Production</param-value>
</context-param>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/app-config.xml</param-value>
</context-param>
<context-param>
    <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
    <param-value>/WEB-INF/springsecurity.taglib.xml</param-value>
</context-param>
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<servlet>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/app-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>faces/index.jsp</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

jsf 页面

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:p="http://primefaces.org/ui"
  xmlns:sec="http://www.springframework.org/security/tags"
  xmlns:f="http://java.sun.com/jsf/core">
  <h:head>
  </h:head>
  <h:body>

    <sec:authorize url="/admin/*">
        This session will be visible to an admin only.<br/>
        You are an Administrator.<br/>
    </sec:authorize>
    <sec:authorize url="/users/*">
        This session will be visible to an Customer only.<br/>
        You are an Customer.<br/>
    </sec:authorize>

    <p:layout style="min-width:400px;min-height:200px;" id="layout">
        <p:layoutUnit position="west" resizable="true" size="100" minSize="40" maxSize="200">
            Left
        </p:layoutUnit>

        <p:layoutUnit position="center">
            <h:form>
                <p:panel header="F.C. Barcelona" footer="Visca el Barca!">
                    <h:outputText value="FC Barcelona is one of only three clubs never to have been relegated from La Liga and is the most successful club in Spanish football along with Real Madrid,
                                  having won twenty La Liga titles, a record twenty-five Spanish Cups, eight Spanish Super Cups, four Eva Duarte Cups and two League Cups.
                                  They are also one of the most successful clubs  in European football having won fourteen official major trophies in total,
                                  including ten UEFA competitions. They have won three UEFA Champions League titles, a record four UEFA Cup Winners' Cups,
                                  a record three InterCities Fairs Cups (the forerunner to the UEFA Europa League), three UEFA Super Cups and one FIFA Club World Cup.
                                  The club is also the only European side to have played continental football in every season since its inception in 1955." />
                </p:panel> </h:form>
        </p:layoutUnit>
    </p:layout>

    <h:outputLink value="#request.contextPath/j_spring_security_logout">Logout</h:outputLink>
</h:body>
</html>

错误信息

WARNING: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet    Faces Servlet threw exception
java.lang.NullPointerException
    at org.springframework.faces.webflow.FlowViewStateManager.saveView(FlowViewStateManager.java:181)
    at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:418)
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
    at org.springframework.faces.webflow.FlowViewHandler.renderView(FlowViewHandler.java:99)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:163)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:662)

有人给我这个问题的建议..? 谢谢阿贡:D

【问题讨论】:

【参考方案1】:

这是 Spring Webflow 2.3.0 中的 a bug,在 Spring Webflow 2.3.1 中已修复。所以显然你使用的是 Spring Webflow 2.3.0,你需要将它升级到 2.3.1。

【讨论】:

很好的答案 BalusC,在我下载并使用 spring webflow 2.3.1 进行更改后,它的工作和 primefaces 可以显示值..hehe 再次感谢,很好的答案 我在使用 spring-webflow-2.3.1 时遇到了同样的错误。这种情况下我该怎么办。我下载了带有依赖项的 spring-webflow-2.3.1。

JSF 2.0 无法从 primefaces 呈现对话框

】JSF2.0无法从primefaces呈现对话框【英文标题】:JSF2.0can\'trenderdialogfromprimefaces【发布时间】:2011-07-2606:32:14【问题描述】:最近我在使用primefaces组件时遇到了很多问题,我不知道为什么。我使用glassfishV3.0,我的primefaces版本是2.2... 查看详情

Primefaces FileUpload 与 PrettyFaces 和 JSF 2.2.3

】PrimefacesFileUpload与PrettyFaces和JSF2.2.3【英文标题】:PrimefacesFileUploadwithPrettyFacesandJSF2.2.3【发布时间】:2013-12-2719:48:04【问题描述】:我在使用&lt;p:fileupload&gt;的页面上遇到了PrettyFaces的一些问题。当我在页面上禁用PrettyFaces... 查看详情

JSF 页面元素无法从具有动作属性的支持 bean 触发方法。(JSF2.0 + primefaces)

...面元素无法从具有动作属性的支持bean触发方法。(JSF2.0+primefaces)【英文标题】:JSFpageelementcannottriggermethodfrombackingbeanwithactionattribute.(JSF2.0+primefaces)【发布时间】:2011-08-0908:50:39【问题描述】:我有一个带有menuitem元素的primefaces... 查看详情

如何在 JSF 上延迟 Primefaces AjaxStatus?

】如何在JSF上延迟PrimefacesAjaxStatus?【英文标题】:HowtodelayPrimefacesAjaxStatusonJSF?【发布时间】:2016-10-1311:17:18【问题描述】:如何在Primefaces的AjaxStatus显示时添加延迟(例如300毫秒)。现在,当有一个Ajax请求挂起时,它总是立即... 查看详情

Primefaces graphicsImage仅在第一次加载时显示图像[重复]

】PrimefacesgraphicsImage仅在第一次加载时显示图像[重复]【英文标题】:PrimefacesgraphicImageonlyshowtheimagethefirsttimeitloads[duplicate]【发布时间】:2021-10-2122:40:54【问题描述】:环境:Primefaces10JSF2.3我正在尝试在模板jsf页面上加载个人资料... 查看详情

关于 JSF 2.0 自定义组件和 Primefaces 的帮助

】关于JSF2.0自定义组件和Primefaces的帮助【英文标题】:HelponJSF2.0CustomComponentsandPrimefaces【发布时间】:2011-11-1120:17:45【问题描述】:我需要使用jsf2.0自定义组件动态创建面板。面板中的控件将从xml动态读取并在选择相应对象时呈... 查看详情

Spring Security 4 和 JSF 2 集成

...和JSF2?我找到了thisneatthing,它允许您将SpringBoot和JSF2与PrimeFaces5混合使用。很棒的东西。我想看看你能不能把它 查看详情

Primefaces 动态列不适用于延迟加载

】Primefaces动态列不适用于延迟加载【英文标题】:PrimefacesDynamiccolumnsnotworkingwithlazyloading【发布时间】:2014-12-2013:47:14【问题描述】:我正在使用PF5.0、JSF2.0(Mojarra)、SpringWebflow2.3。我在使用Datatable延迟加载时遇到了多个问题。a.)... 查看详情

JSF 2.0 更新 primefaces 对话框第一次不起作用

】JSF2.0更新primefaces对话框第一次不起作用【英文标题】:JSF2.0Updateaprimefacesdialognotworkingthefirsttime【发布时间】:2011-10-1301:46:43【问题描述】:我有一个要求用户输入文本的简单表单。然后,当用户单击链接时,将显示一个对话... 查看详情

延迟加载和解析 PrimeFaces JavaScript 文件

】延迟加载和解析PrimeFacesJavaScript文件【英文标题】:DeferloadingandparsingofPrimeFacesJavaScriptfiles【发布时间】:2014-06-0402:46:07【问题描述】:在使用GooglePageSpeed分析JSF2.1+PrimeFaces4.0webapp的性能时,它建议延迟解析JavaScript文件。在带有... 查看详情

使用 JSF 2.0 和 Primefaces 设置项目

】使用JSF2.0和Primefaces设置项目【英文标题】:SetupProjectwithJSF2.0&PrimeFaces【发布时间】:2012-09-0605:54:30【问题描述】:我正在尝试使用主要面孔库设置JSF项目当我运行此设置时,它显示以下错误org.apache.jasper.JasperException:javax.ser... 查看详情

jsf2 primefaces 通知栏

】jsf2primefaces通知栏【英文标题】:jsf2primefacesnotificationbar【发布时间】:2015-04-2519:57:33【问题描述】:我想在我的jsf页面中有通知栏。当我使用此示例代码时,它可以工作<p:notificationBarposition="top"effect="slide"styleClass="top"widgetVar... 查看详情

刷新会话jsf2,primefaces中的数据

我有两个xhtml页面:第一个允许存储新订单,第二个允许列出存储在数据库中的所有订单。出于特定目的,我在第二页中有sessionManeged,问题是当我保存新订单而我进入第二页时它没有得到刷新,因为数据存储在会话中。你可以... 查看详情

验证失败后 Primefaces JSF 更新不起作用

】验证失败后PrimefacesJSF更新不起作用【英文标题】:PrimefacesJSFupdateaftervalidationfaileddoesn\'twork【发布时间】:2012-01-3011:15:31【问题描述】:我在验证&lt;p:inputText&gt;和更新其内容时遇到问题。基本上当inputText验证失败时,它... 查看详情

h:commandButton 不能与 JSF bean 一起工作,而页面正在加载

...22:06:48【问题描述】:问题:h:commandButtonajax在页面加载时无法使用JSFbean。一个JSF页面的列表很长(加载需要几秒钟):<?xmlversion="1.0"encod 查看详情

JSF 2 PrimeFaces 安装

】JSF2PrimeFaces安装【英文标题】:JSF2PrimeFacesInstallaion【发布时间】:2011-04-0516:03:04【问题描述】:我想使用PrimeFaces。我按照webpage上的所有说明进行操作我的POM:<dependency><groupId>org.primefaces</groupId><artifactId>primefa... 查看详情

在 SelectOnemenu 上重置 JSF Primefaces 输入值

】在SelectOnemenu上重置JSFPrimefaces输入值【英文标题】:JSFPrimefacesinputvaluesresetuponSelectOnemenu【发布时间】:2021-03-0310:03:37【问题描述】:在手动选择selectOneMenuid="format"的值时重置输入的输入值selectOneMenuid="format"的渲染效果很好。但... 查看详情

有没有办法在离开带有jsf或primefaces的页面时调用方法?

有没有办法在离开JSF页面时调用方法?答案不是在使用本机JSF或PrimeFaces时。你最好的选择是挂钩会话到期。importjavax.inject.Named;importjavax.enterprise.context.SessionScoped;@Named@SessionScopedpublicclassBeanimplementsSerializable{@PreDestroypub 查看详情