我正在尝试将我的应用程序设置为与 Tomcat 8 和 JSF 2.3 一起运行,但出现此错误:
RAVE:部署期间的严重错误: java.lang.NullPointerException 在 java.util.Objects.requireNonNull(Objects.java:203) 在 javax.el.CompositeELResolver.add(CompositeELResolver.java:47) 在 com.sun.faces.el.DemuxCompositeELResolver.addRootELResolver(DemuxCompositeELResolver.java:142) 在 com.sun.faces.el.ELUtils.addEL3_0_Resolvers(ELUtils.java:336) 在 com.sun.faces.el.ELUtils.buildFacesResolver(ELUtils.java:258) 在 com.sun.faces.application.ApplicationAssociate.initializeELResolverChains(ApplicationAssociate.java:499) 在 com.sun.faces.application.ApplicationImpl.performOneTimeELInitialization(ApplicationImpl.java:1404) 在 com.sun.faces.application.ApplicationImpl.getELResolver(ApplicationImpl.java:526) 在 javax.faces.application.ApplicationWrapper.getELResolver(ApplicationWrapper.java:621) 在 javax.faces.application.ApplicationWrapper.getELResolver(ApplicationWrapper.java:621) 在 com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:256) 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4743) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:748) 2017 年 9 月 5 日下午 12:14:51 org.apache.catalina.core.StandardContext listenerStart GRAVE: Excepción enviando eventto inicializado de contexto a instancia de escuchador de clase com.sun.faces.config.ConfigureListener java.lang.RuntimeException: java.lang.NullPointerException 在 com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:315) 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4743) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:748) 引起:java.lang.NullPointerException 在 java.util.Objects.requireNonNull(Objects.java:203) 在 javax.el.CompositeELResolver.add(CompositeELResolver.java:47) 在 com.sun.faces.el.DemuxCompositeELResolver.addRootELResolver(DemuxCompositeELResolver.java:142) 在 com.sun.faces.el.ELUtils.addEL3_0_Resolvers(ELUtils.java:336) 在 com.sun.faces.el.ELUtils.buildFacesResolver(ELUtils.java:258) 在 com.sun.faces.application.ApplicationAssociate.initializeELResolverChains(ApplicationAssociate.java:499) 在 com.sun.faces.application.ApplicationImpl.performOneTimeELInitialization(ApplicationImpl.java:1404) 在 com.sun.faces.application.ApplicationImpl.getELResolver(ApplicationImpl.java:526) 在 javax.faces.application.ApplicationWrapper.getELResolver(ApplicationWrapper.java:621) 在 javax.faces.application.ApplicationWrapper.getELResolver(ApplicationWrapper.java:621) 在 com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:256) ... 9 更多
我的 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,以防万一它是相关的,并且错误不会消失。
我错过了一些图书馆吗?,也许版本是错误的?
谢谢。