当前位置: 首页 > 知识库问答 >
问题:

JSF

胡嘉歆
2023-03-14

这方面有一个非常类似的问题:使用maven的netbeans中的Richfaces,即在GlassFish 4.1中部署JSF项目时会出现问题

  • 我尝试创建一个JSF项目:
    • a)Maven和javax.faces-war原型ver 2.2和
    • b)作为NetBeans项目
    • a) 素数面5--

    我在netbeans中遇到的例外是:

    警告:StandardWrapperValve[Faces Servlet]:Servlet。servlet的service()面临servlet抛出异常java。com上的lang.IllegalStateException。太阳面孔。上下文FacesContextImpl。assertNotReleased(FacesContextImpl.java:705)位于com。太阳面孔。上下文FacesContextImpl。org上的getAttributes(FacesContextImpl.java:237)。富有的面孔。上下文ExtendedPartialViewContext。org上的setInstance(ExtendedPartialViewContext.java:55)。富有的面孔。上下文ExtendedPartialViewContext。在org上发布(ExtendedPartialViewContext.java:64)。富有的面孔。上下文ExtendedPartialViewContextImpl。在com上发布(ExtendedPartialViewContextImpl.java:424)。太阳面孔。上下文FacesContextImpl。在javax上发布(FacesContextImpl.java:591)。面孔。网络应用。FacesServlet。服务(FacesServlet.java:665)位于org。阿帕奇。卡塔琳娜。果心标准包装。服务(StandardWrapper.java:1682)位于org。阿帕奇。卡塔琳娜。果心标准包装阀。在org上调用(StandardWrapperValve.java:318)。阿帕奇。卡塔琳娜。果心标准连接阀。在org上调用(StandardContextValve.java:160)。阿帕奇。卡塔琳娜。果心标准管道。doInvoke(StandardPipeline.java:734)位于org。阿帕奇。卡塔琳娜。果心标准管道。在com上调用(StandardPipeline.java:673)。太阳企业网状物网络管道。在org调用(WebPipeline.java:99)。阿帕奇。卡塔琳娜。果心标准阀门。在org上调用(StandardHostValve.java:174)。阿帕奇。卡塔琳娜。连接器。郊狼适应者。doService(CoyoteAdapter.java:415)位于org。阿帕奇。卡塔琳娜。连接器。郊狼适应者。com上的服务(CoyoteAdapter.java:282)。太阳企业v3。服务。impl。ContainerMapper$HttpHandlerCallable。在com上调用(ContainerMapper.java:459)。太阳企业v3。服务。impl。集装箱司机。org上的服务(ContainerMapper.java:167)。玻璃鱼。灰熊http。服务器HttpHandler。在org上运行服务(HttpHandler.java:201)。玻璃鱼。灰熊http。服务器HttpHandler。org上的doHandle(HttpHandler.java:175)。玻璃鱼。灰熊http。服务器HttpServerFilter。handleRead(HttpServerFilter.java:235)位于org。玻璃鱼。灰熊过滤链。遗嘱执行人9美元。在org上执行(executorsolver.java:119)。玻璃鱼。灰熊过滤链。DefaultFilterChain。org上的executeFilter(DefaultFilterChain.java:284)。玻璃鱼。灰熊过滤链。DefaultFilterChain。org上的executeChainPart(DefaultFilterChain.java:201)。玻璃鱼。灰熊过滤链。DefaultFilterChain。在org上执行(DefaultFilterChain.java:133)。玻璃鱼。灰熊过滤链。DefaultFilterChain。在org上处理(DefaultFilterChain.java:112)。玻璃鱼。灰熊处理器执行器。在org上执行(ProcessorExecutor.java:77)。玻璃鱼。灰熊尼奥。运输交通运输。fireIOEvent(TCPNIOTransport.java:561)位于org。玻璃鱼。灰熊策略。抽象策略。fireIOEvent(AbstractIOStrategy.java:112)位于org。玻璃鱼。灰熊策略。工作线程策略。在org上运行0(WorkerThreadIOStrategy.java:117)。玻璃鱼。灰熊策略。工作线程策略。在org上访问$100(WorkerThreadIOStrategy.java:56)。玻璃鱼。灰熊策略。WorkerThreadIOStrategy$WorkerThreadRunnable。在org上运行(WorkerThreadIOStrategy.java:137)。玻璃鱼。灰熊线程池。抽象线程池$Worker。doWork(AbstractThreadPool.java:565)位于org。玻璃鱼。灰熊线程池。抽象线程池$Worker。在java上运行(AbstractThreadPool.java:545)。朗。丝线。运行(Thread.java:745)

    我将描述我在以Maven方式构建项目时遵循的步骤:这些是我创建项目时遵循的步骤:一个JSF项目,使用NetBeans 8.0.1,GlassFish4.1,使用RichFaces...项目创建使用maven原型javax.faces-war原型ver2.2

    1. 新项目-

    创建项目的pom.xml为:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.mydomain.myproject</groupId>
        <artifactId>test_richfaces_with_archetype</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>${project.artifactId}</name>
        <description>A simple project with war packaging that depends on JSF 2.2 and 
            javaee 6, in that order.</description>
        <url>http://jsf-spec.java.net/</url>
        <build>
            <finalName>${project.artifactId}</finalName>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                      <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
    
            </plugins>
        </build>
        <properties>
          <spec.snapshot.version>2.2</spec.snapshot.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>javax.faces</groupId>
                <artifactId>javax.faces-api</artifactId>
                <version>${spec.snapshot.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax</groupId>
                <artifactId>javaee-api</artifactId>
                <version>6.0</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
        <repositories>
            <repository>
                <id>java.net-maven2-SNAPSHOT-repository</id>
                <name>Java.net SNAPSHOT-Repository for Maven</name>
                <url>https://maven.java.net/content/repositories/snapshots/</url>
                <layout>default</layout>
            </repository>
            <repository>
                <id>java.net-maven2-repository</id>
                <name>Java.net Repository for Maven</name>
                <url>https://maven.java.net/content/repositories/releases/</url>
                <layout>default</layout>
            </repository>
        </repositories>
    </project>
    

    pom.xml已更改,现在如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.com.mydomain.myproject</groupId>
        <artifactId>test_richfaces_with_archetype</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>${project.artifactId}</name>
        <description>A simple project with war packaging that depends on JSF 2.2 and 
            javaee 6, in that order.</description>
        <url>http://jsf-spec.java.net/</url>
        <build>
            <finalName>${project.artifactId}</finalName>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                      <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
    
            </plugins>
        </build>
        <properties>
          <spec.snapshot.version>2.2</spec.snapshot.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>javax.faces</groupId>
                <artifactId>javax.faces-api</artifactId>
                <version>${spec.snapshot.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.richfaces.core</groupId>
                <artifactId>richfaces-core-impl</artifactId>
                <version>4.3.3.Final</version>
            </dependency>
            <dependency>
                <groupId>org.richfaces.ui</groupId>
                <artifactId>richfaces-components-ui</artifactId>
                <version>4.3.3.Final</version>
            </dependency>
            <dependency>
                <groupId>javax</groupId>
                <artifactId>javaee-api</artifactId>
                <version>6.0</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
        <repositories>
            <repository>
                <id>java.net-maven2-SNAPSHOT-repository</id>
                <name>Java.net SNAPSHOT-Repository for Maven</name>
                <url>https://maven.java.net/content/repositories/snapshots/</url>
                <layout>default</layout>
            </repository>
            <repository>
                <id>java.net-maven2-repository</id>
                <name>Java.net Repository for Maven</name>
                <url>https://maven.java.net/content/repositories/releases/</url>
                <layout>default</layout>
            </repository>
            <repository>
                <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
                <id>RichFaces-maven-lib</id>
                <layout>default</layout>
                <name>Repository for library RichFaces-maven-lib</name>
            </repository>
        </repositories>
    </project>
    

    Welcomer就是这样的。xhtml

    <?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:rich="http://richfaces.org/rich"
          xmlns:h="http://java.sun.com/jsf/html">
        <h:head>
            <title>Richfaces Welcome Page</title>
        </h:head>
        <h:body>
            <rich:panel header="Welcome to Richfaces">
                RichFaces is an advanced UI component framework for easily integrating Ajax capabilities into business applications using JSF.  Check out the links below to lear more about using RichFaces in your application.
                <ul>
                    <li><h:outputLink value="http://richfaces.org" >Richfaces Project Home Page</h:outputLink></li>
                    <li><h:outputLink value="http://showcase.richfaces.org" >Richfaces Showcase</h:outputLink></li>
                    <li><h:outputLink value="https://community.jboss.org/en/richfaces?view=discussions" >User Forum</h:outputLink></li>
                    <li><h:outputLink value="http://www.jboss.org/richfaces/docs" >Richfaces documentation...</h:outputLink>
                        <ul>
                            <li><h:outputLink value="http://docs.jboss.org/richfaces/latest_4_X/Developer_Guide/en-US/html_single/" >Development Guide</h:outputLink></li>
                            <li><h:outputLink value="http://docs.jboss.org/richfaces/latest_4_X/Component_Reference/en-US/html/" >Component Reference</h:outputLink></li>
                            <li><h:outputLink value="http://docs.jboss.org/richfaces/latest_4_X/vdldoc/" >Tag Library Docs</h:outputLink></li>
                        </ul>
                    </li>
                </ul>
            </rich:panel>
        </h:body>
    </html>
    

    web。xml

    <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">
    
        <display-name>mojarra-regression-test</display-name>
        <description>A simple regression test to make it easier to get your bug fixed. The only reason we need a web.xml is to set the PROJECT_STAGE to Develoment.  If you have a web.xml, then you need to map the FacesServlet.</description>
    
        <context-param>
            <description>
                Tell the runtime where we are in the project development
                lifecycle.  Valid values are: 
                Development, UnitTest, SystemTest, or Production.
                The runtime will display helpful hints to correct common mistakes
                when the value is Development.
            </description>
            <param-name>javax.faces.PROJECT_STAGE</param-name>
            <param-value>Development</param-value>
        </context-param>
    
        <!-- Faces Servlet -->
      <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
    
       <servlet-mapping>
           <servlet-name>Faces Servlet</servlet-name>
           <url-pattern>/faces/*</url-pattern>
       </servlet-mapping>
    
       <welcome-file-list>
         <welcome-file>faces/main.xhtml</welcome-file>
       </welcome-file-list>
    
    </web-app>
    

    此外,如果单击“依赖项”节点中的加号,您将看到:

    • javaee-api-6.0。罐子
    • javax。faces-api-2.2。罐子
    • richfaces-components-ui-4.3。3.决赛。罐子
    • cssparser-0.9。5.罐子
    • 番石榴-13.0。1.罐子
    • richfaces-components-api-4.3。3.决赛。罐子
    • richfaces-core-api-4.3。3.决赛。罐子
    • sac-1.3。罐子

    注意:在我的例子中,当我试图编译(清洁构建)项目时,番石榴库出现了错误。我删除了谷歌文件夹,我已经在我的存储库,做了一次干净的构建。一切都被重新下载和项目编译。

共有1个答案

吕成业
2023-03-14

我对Wildfly 8.2也有同样的问题。我的解决方案是“降级”jsf。请参阅升级到Wildfly 8.2时出错

 类似资料:
  • 问题内容: 在JSF2中,是否可以使用Ajax请求动态更改ui:include的src值(例如PrimeFacesp:commandButton)?谢谢。 那就是我现在所拥有的。是否有可能使它成为Ajax(使用p:commandButton)? 问题答案: 另一个答案中提出的JSTL标签不是必需的,并且不能很好地重用。 这是一个使用纯JSF的基本示例(假设您运行Servlet 3.0 / EL 2

  • 问题内容: 假设网址为http:// localhost:8080 / project-name / resource.xhtml , 我想 在JSF托管bean中获得以下 http:// localhost:8080 / project- name 。 问题答案: 我假设您使用JSF 2和Java EE 6来获得此答案。 实际机制的实现会根据您需要原始URL的程度而有所不同。 首先,您需要访问生

  • 问题内容: 我正在使用将Spring用于DI / bean管理的超大型JSF / Facelets应用程序。我的应用程序具有模块化结构,我目前正在寻找使模块化标准化的方法。 我的目标是由许多模块(可能相互依赖)组成一个Web应用程序。每个模块可能包含以下内容: 类; 静态资源(图像,CSS,脚本); Facelet模板; 托管Bean-具有请求,会话和应用程序范围的Bean的Spring应用程序上

  • 问题内容: 加载页面时,是否可以执行JSF托管的bean操作? 如果相关,那么我目前正在使用JSF 1.2。 问题答案: JSF 1.0 / 1.1 只需将所需的逻辑放入与JSF页面关联的请求范围的bean的构造函数中即可。 JSF 1.2 / 2.x @PostConstruct在请求或视图范围的bean上使用带注释的方法。将在构造和初始化/设置所有托管属性和注入的依赖项之后执行它。 如果您使用

  • 问题内容: 这个问题与我的另一个问题“ 当JavaWeb应用程序中的Session过期时如何重定向到登录页面? ”有关。以下是我要执行的操作: 我有一个在JBoss AS 5上运行的JSF Web应用程序 当用户闲置15分钟(例如15分钟)时,如果他在会话到期后尝试使用该应用程序,则需要注销该用户并将其重定向到登录页面。 因此,如“ JSF注销和重定向 ”中的建议,我实现了一个过滤器,该过滤器可检

  • 问题内容: 在JSF 2.0.9,Weblogic 10.3.4上运行。我们现在在生产环境中运行JSF,但是会话复制遇到了一些问题并进行了故障转移。我们正在为我们的bean使用viewscope,我已经确保它们是可序列化的/瞬态的,并且瞬态变量实际上是无状态的。但是,会话故障转移不起作用。我已经进行了广泛的测试,并设法通过在web.xml中设置以下参数来使其正常工作 如果设置为,则在故障转移时会收

  • 问题内容: 在JSF中,我可以将Faces Servlet映射到各种URL模式。例如。 但是我想要的是将Faces Servlet映射为 无 扩展名。意思是,如果我在Web根目录中有一个页面,我想使用来请求此页面。 我看了一个问题,如何配置不带文件扩展名的JSFURL映射?这在某种程度上是可行的,但它要求我分别映射我拥有的每个文件(如果我输入错了,请更正我)。 如何将所有文件一次映射到Faces

  • 问题内容: 我将开始学习JSF,但是首先我想了解它作为MVC框架的概况。 有很多答案,其中有很多赞扬解释了JSF中的MVC层,但是它们通常是矛盾的。 BalusC的答案: JSFMVC框架中的MVC是什么组件? 在总体架构图中,您自己的JSF代码是 V : M- 业务域/服务层(例如EJB / JPA / DAO) V- 您的JSF代码 C -FacesServlet 在开发人员图中,体系结构 V