2015-09-09 59 views
0

我想构建一个使用Eclipse Webflow和JSF使用Eclipse IDE的webproject。所以我用JSF 2.2实现创建了一个动态Web项目。然而,当试图运行该项目,我得到一些例外。以下是我的Maven配置文件。Spring Webflow和JSF:java.lang.NullPointerException在com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTagLibrary

的pom.xml

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.breathejava</groupId> 
    <artifactId>WebFlowDemo2</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>SWF_Example Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
    <spring.version>4.0.1.RELEASE</spring.version> 
    <swf.version>2.4.0.RELEASE</swf.version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>7.0</version> 
      <scope>provided</scope> 
     </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency>  
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.webflow</groupId> 
     <artifactId>spring-webflow</artifactId> 
     <version>${swf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
<dependency> 
    <groupId>com.sun.facelets</groupId> 
    <artifactId>jsf-facelets</artifactId> 
    <version>1.1.14</version> 
</dependency> 

<dependency> 
    <groupId>javax.faces</groupId> 
    <artifactId>javax.faces-api</artifactId> 
    <version>2.2</version> 
</dependency> 

    </dependencies> 
    <build> 
    <finalName>WebFlowDemo2</finalName> 
    </build> 
</project> 

堆栈跟踪

SEVERE: Critical error during deployment: 
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! null 
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:449) 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:214) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5017) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5531) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NullPointerException 
    at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTagLibrary(FaceletTaglibConfigProcessor.java:326) 
    at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:270) 
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:437) 
    ... 10 more 

Sep 09, 2015 3:26:09 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener 
java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! null 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:273) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5017) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5531) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! null 
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:449) 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:214) 
    ... 9 more 
Caused by: java.lang.NullPointerException 
    at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTagLibrary(FaceletTaglibConfigProcessor.java:326) 
    at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:270) 
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:437) 
    ... 10 more 

Sep 09, 2015 3:26:09 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file 
Sep 09, 2015 3:26:09 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/JSF_Webflow] startup failed due to previous errors 
Sep 09, 2015 3:26:09 PM javax.faces.FactoryFinder$FactoryManager getFactory 
SEVERE: Application was not properly initialized at startup, could not find Factory: javax.faces.application.ApplicationFactory. Attempting to find backup. 
Sep 09, 2015 3:26:09 PM com.sun.faces.config.ConfigureListener contextDestroyed 
SEVERE: Unexpected exception when attempting to tear down the Mojarra runtime 
java.lang.IllegalStateException: Could not find backup for factory javax.faces.application.ApplicationFactory. 
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1135) 
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:379) 
    at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:140) 
    at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:310) 
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5064) 
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5726) 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

是什么原因导致这种异常?什么是理由,什么是解决方案?

+0

混合jsf版本?有一个不露面的1.1,并且面向2.2不确定是否真的兼容。 –

回答

2

这是不对的。

<dependency> 
    <groupId>com.sun.facelets</groupId> 
    <artifactId>jsf-facelets</artifactId> 
    <version>1.1.14</version> 
</dependency> 

<dependency> 
    <groupId>javax.faces</groupId> 
    <artifactId>javax.faces-api</artifactId> 
    <version>2.2</version> 
</dependency> 

Facelets 1.x用于JSF 1.x.自从JSF 2.0以来,Facelets被集成为标准JSF API的一部分。在效果中,最终在运行时类路径中会出现两个不同的Facelets版本,彼此不兼容,从而导致与处理Facelets文件相关的所有颜色的类路径冲突。

摆脱Facelets 1.x.在JSF 2.x中不需要它。


无关的具体问题,结合春季的Webflow和JSF 2.2奇怪的是作为JSF 2.2已附带内置流量范围的支持。您通常只希望将Spring WebFlow与缺少流作用域功能的JSF 2.0/2.1结合使用。然后,我不是在你的pom中谈论Spring MVC。它看起来很像你不知道JSF是什么以及它将用于什么。这是读取的食物:Using JSF as view technology of Spring MVC

+0

非常有用的感谢。 –