Я пытаюсь создать проект с Mojarra 2.3.8 и PrimeFaces 8.0 для сервера приложений Tomcat 8. Я использовал IntelliJ для сборки и тестирования моего веб-приложения.
Следуя инструкции по установке WELD, я установил все зависимости с помощью maven, мой файл pom:
<?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>groupId</groupId>
<artifactId>SensorWebHub3</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- dependencies for PrimeFaces -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
<artifactId>owasp-java-html-sanitizer</artifactId>
<version>20190503.1</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>8.0</version>
</dependency>
<!-- dependencies for CDI WELD -->
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet-shaded</artifactId>
<version>3.1.4.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.2.Final</version>
</dependency>
<dependency>
<groupId>org.jboss</groupId>
<artifactId>jandex</artifactId>
<version>2.1.3.Final</version>
</dependency>
</dependencies>
</project>
Я создал контекст. xml файл в каталоге META-INF:
<Context>
<Resource name="BeanManager"
auth="Container"
type="javax.enterprise.inject.spi.BeanManager"
factory="org.jboss.weld.resources.ManagerObjectFactory" />
</Context>
Я создаю пустой бин. xml файл помещается в каталог WEB-INF; Более того, я создал файл. xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<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>*.xhtml</url-pattern>
</servlet-mapping>
<context-param>
<param-name>primefaces.FONT_AWESOME</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>primefaces.LEGACY_WIDGET_NAMESPACE</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>nova-light</param-value>
</context-param>
</web-app>
Мой простой файл index.x html:
<?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://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<f:view>
<h:outputLabel value="Hello, world"/>
<p:textEditor />
</f:view>
</html>
и структура моего проекта: ![enter image description here](https://i.stack.imgur.com/nxZsW.png)
Я настроил IntelliJ IDEA для запуска сервера приложений Tomcat 8.5.54. Когда я запускаю tomcat, он пытается развернуть файл war, но я получаю следующее исключение:
/Users/lerocchi/Tomcat-8.5.54/bin/catalina.sh run
[2020-04-15 06:10:22,449] Artifact swh3: Waiting for server connection to start artifact deployment...
15-Apr-2020 18:10:23.000 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/8.5.54
15-Apr-2020 18:10:23.001 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 3 2020 14:06:10 UTC
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 8.5.54.0
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Mac OS X
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 10.15.4
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: x86_64
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_45-b14
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /Users/lerocchi/Library/Caches/JetBrains/IntelliJIdea2020.1/tomcat/Unnamed_SensorWebHub3
15-Apr-2020 18:10:23.002 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /Users/lerocchi/Tomcat-8.5.54
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/Users/lerocchi/Library/Caches/JetBrains/IntelliJIdea2020.1/tomcat/Unnamed_SensorWebHub3/conf/logging.properties
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=/Users/lerocchi/Library/Caches/JetBrains/IntelliJIdea2020.1/tomcat/Unnamed_SensorWebHub3/jmxremote.password
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=/Users/lerocchi/Library/Caches/JetBrains/IntelliJIdea2020.1/tomcat/Unnamed_SensorWebHub3/jmxremote.access
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
15-Apr-2020 18:10:23.003 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
15-Apr-2020 18:10:23.004 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/Users/lerocchi/Library/Caches/JetBrains/IntelliJIdea2020.1/tomcat/Unnamed_SensorWebHub3
15-Apr-2020 18:10:23.004 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/Users/lerocchi/Tomcat-8.5.54
15-Apr-2020 18:10:23.004 INFORMAZIONI [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/Users/lerocchi/Tomcat-8.5.54/temp
15-Apr-2020 18:10:23.004 INFORMAZIONI [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/Users/lerocchi/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
15-Apr-2020 18:10:23.104 INFORMAZIONI [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
15-Apr-2020 18:10:23.120 INFORMAZIONI [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
15-Apr-2020 18:10:23.131 INFORMAZIONI [main] org.apache.catalina.startup.Catalina.load Initialization processed in 422 ms
15-Apr-2020 18:10:23.156 INFORMAZIONI [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
15-Apr-2020 18:10:23.156 INFORMAZIONI [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.54
15-Apr-2020 18:10:23.163 INFORMAZIONI [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
15-Apr-2020 18:10:23.170 INFORMAZIONI [main] org.apache.catalina.startup.Catalina.start Server startup in 38 ms
Connected to server
[2020-04-15 06:10:23,540] Artifact swh3: Artifact is being deployed, please wait...
15-Apr-2020 18:10:23.956 AVVERTENZA [RMI TCP Connection(2)-127.0.0.1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]. Default version will be used.
15-Apr-2020 18:10:25.895 INFORMAZIONI [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
15-Apr-2020 18:10:25.931 INFO [RMI TCP Connection(2)-127.0.0.1] org.jboss.weld.environment.servlet.EnhancedListener.onStartup WELD-ENV-001008: Initialize Weld using ServletContainerInitializer
15-Apr-2020 18:10:25.952 INFO [RMI TCP Connection(2)-127.0.0.1] org.jboss.weld.bootstrap.WeldStartup.<clinit> WELD-000900: 3.1.4 (Final)
15-Apr-2020 18:10:26.030 INFO [RMI TCP Connection(2)-127.0.0.1] org.jboss.weld.environment.deployment.discovery.DiscoveryStrategyFactory.create WELD-ENV-000020: Using jandex for bean discovery
15-Apr-2020 18:10:26.080 WARN [RMI TCP Connection(2)-127.0.0.1] org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize WELD-ENV-000028: Weld initialization skipped - no bean archive found
15-Apr-2020 18:10:26.122 INFORMAZIONI [RMI TCP Connection(2)-127.0.0.1] com.sun.faces.config.ConfigureListener.contextInitialized Initializing Mojarra 2.3.8 ( 20181116-0037 55af8b79ca53ec2df566f9c08a430259d30f9ba5) for context '/swh3'
15-Apr-2020 18:10:26.293 INFORMAZIONI [RMI TCP Connection(2)-127.0.0.1] com.sun.faces.spi.InjectionProviderFactory.createInstance JSF1048: PostConstruct/PreDestroy annotations present. ManagedBeans methods marked with these annotations will have said annotations processed.
15-Apr-2020 18:10:26.434 GRAVE [RMI TCP Connection(2)-127.0.0.1] com.sun.faces.config.ConfigureListener.contextInitialized Critical error during deployment:
com.sun.faces.config.ConfigurationException: Factory 'javax.faces.lifecycle.ClientWindowFactory' was not configured properly.
at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:357)
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:243)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:443)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:237)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4699)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5167)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1720)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)
...
...
Понятия не имею ...