首页 文章

NPE ConfigureListener Tomcat 8 JSF 2.3 [重复]

提问于
浏览
2

这个问题在这里已有答案:

我正在尝试设置我的应用程序以运行Tomcat 8和JSF 2.3,但我收到此错误:

RAVE: Critical error during deployment: 
java.lang.NullPointerException
    at java.util.Objects.requireNonNull(Objects.java:203)
    at javax.el.CompositeELResolver.add(CompositeELResolver.java:47)
    at com.sun.faces.el.DemuxCompositeELResolver.addRootELResolver(DemuxCompositeELResolver.java:142)
    at com.sun.faces.el.ELUtils.addEL3_0_Resolvers(ELUtils.java:336)
    at com.sun.faces.el.ELUtils.buildFacesResolver(ELUtils.java:258)
    at com.sun.faces.application.ApplicationAssociate.initializeELResolverChains(ApplicationAssociate.java:499)
    at com.sun.faces.application.ApplicationImpl.performOneTimeELInitialization(ApplicationImpl.java:1404)
    at com.sun.faces.application.ApplicationImpl.getELResolver(ApplicationImpl.java:526)
    at javax.faces.application.ApplicationWrapper.getELResolver(ApplicationWrapper.java:621)
    at javax.faces.application.ApplicationWrapper.getELResolver(ApplicationWrapper.java:621)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:256)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4743)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)

sep 05, 2017 12:14:51 PM org.apache.catalina.core.StandardContext listenerStart
GRAVE: Excepción enviando evento inicializado de contexto a instancia de escuchador de clase com.sun.faces.config.ConfigureListener
java.lang.RuntimeException: java.lang.NullPointerException
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:315)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4743)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
    at java.util.Objects.requireNonNull(Objects.java:203)
    at javax.el.CompositeELResolver.add(CompositeELResolver.java:47)
    at com.sun.faces.el.DemuxCompositeELResolver.addRootELResolver(DemuxCompositeELResolver.java:142)
    at com.sun.faces.el.ELUtils.addEL3_0_Resolvers(ELUtils.java:336)
    at com.sun.faces.el.ELUtils.buildFacesResolver(ELUtils.java:258)
    at com.sun.faces.application.ApplicationAssociate.initializeELResolverChains(ApplicationAssociate.java:499)
    at com.sun.faces.application.ApplicationImpl.performOneTimeELInitialization(ApplicationImpl.java:1404)
    at com.sun.faces.application.ApplicationImpl.getELResolver(ApplicationImpl.java:526)
    at javax.faces.application.ApplicationWrapper.getELResolver(ApplicationWrapper.java:621)
    at javax.faces.application.ApplicationWrapper.getELResolver(ApplicationWrapper.java:621)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:256)
    ... 9 more

我的pom.xml是下一个:

<properties>

    <!-- Librerias JSF -->
    <omnifaces.version>2.6.4</omnifaces.version>
    <prettyfaces.version>3.3.3</prettyfaces.version>
    <primefaces.version>6.1</primefaces.version>
    <primefaces.themes.version>1.0.10</primefaces.themes.version>
    <primefaces-extensions.version>6.1.1</primefaces-extensions.version>
    <javax.faces.version>2.3.2</javax.faces.version>
    <javax.el.api.version>3.0.0</javax.el.api.version>

    <!-- Spring -->
    <spring.version>4.3.10.RELEASE</spring.version>

    <!-- Servlet -->
    <jstl.version>1.2</jstl.version>
    <javax.servlet.api.version>4.0.0</javax.servlet.api.version>        

    <!-- CDI -->
    <weld.servlet.shaded.version>3.0.0.Final</weld.servlet.shaded.version>
    <cdi.api.version>2.0</cdi.api.version>

    <!-- Hibernate -->
    <hibernate.show_sql>true</hibernate.show_sql>
    <hibernate.generate_ddl>true</hibernate.generate_ddl>
</properties>

<dependencies>

    <!-- JSF dependencies -->
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>${javax.faces.version}</version>
    </dependency>

    <!-- JSF 2 y expresiones EL RI -->
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>javax.el-api</artifactId>
        <version>${javax.el.api.version}</version>
    </dependency>

    <!-- Spring dependencies -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!-- Prettyfaces dependencies -->
    <dependency>
        <groupId>com.ocpsoft</groupId>
        <artifactId>prettyfaces-jsf2</artifactId>
        <version>${prettyfaces.version}</version>
    </dependency>

    <!-- Omnifaces dependencies -->
    <dependency>
        <groupId>org.omnifaces</groupId>
        <artifactId>omnifaces</artifactId>
        <version>${omnifaces.version}</version>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
    </dependency>

    <!-- JSF Primefaces -->
    <dependency>
        <groupId>org.primefaces.themes</groupId>
        <artifactId>flick</artifactId>
        <version>${primefaces.themes.version}</version>
    </dependency>
    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>${primefaces.version}</version>
    </dependency>
    <dependency>
        <groupId>org.primefaces.extensions</groupId>
        <artifactId>primefaces-extensions</artifactId>
        <version>${primefaces-extensions.version}</version>
    </dependency>

    <!-- Servlet -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${javax.servlet.api.version}</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>${jstl.version}</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.weld.servlet</groupId>
        <artifactId>weld-servlet-shaded</artifactId>
        <version>${weld.servlet.shaded.version}</version>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>${cdi.api.version}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

我的 /WEB-INF/context.xml 中有下一个设置:

<?xml version="1.0" encoding="UTF-8"?>
<Context allowCasualMultipartParsing="true">
    <Resource name="BeanManager" 
        auth="Container"
        type="javax.enterprise.inject.spi.BeanManager"
        factory="org.jboss.weld.resources.ManagerObjectFactory" />
</Context>

我正在使用Tomcat 8.5.14和Java 1.8.0_131 .

我已经尝试删除Primefaces,以防它相关,并且错误不会消失 .

我错过了一些库吗?或许版本错了?

谢谢 .

1 回答

  • 1

    除了Maven依赖项之外,您的项目中是否还有任何JAR?我的项目中有 el-impl-2.2.jar (过去的残余),显然它引起了冲突 . 我从web.xml中删除了jar和以下部分:

    <context-param>
        <param-name>com.sun.faces.expressionFactory</param-name>
        <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
    </context-param>
    

    现在应用程序启动没有错误 .

相关问题