1

I want to develop a JSF web application.

I use JSF 2.3 (.xhtml), Tomcat 9.0.33 and Open JDK 11.0.2 (on Windows 10)

Apache Netbean 11.3 is my IDE. (this now support jsf 2.3)

I started setting up my environment by following these posts : JSF WebApp with Tomcat (which version?) for JSF/Tomcat, and this : Install Weld in Tomcat to setup CDI (Tomcat does not natively support CDI)

this is my web.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">
      <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
      </context-param>
      <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>
        <url-pattern>*.jsf</url-pattern>
        <url-pattern>*.xhtml</url-pattern>
      </servlet-mapping>
      <session-config>
        <session-timeout>
          30
        </session-timeout>
      </session-config>
      <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
      </welcome-file-list>
    </web-app>

and my faces-config.xml :

    <faces-config 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-facesconfig_2_3.xsd"
        version="2.3">

    </faces-config>

The webapp built without problems, but when I run it, I get this:

        Using CATALINA_BASE:   "C:\apache-tomcat-9.0.33"
    Using CATALINA_HOME:   "C:\apache-tomcat-9.0.33"
    Using CATALINA_TMPDIR: "C:\apache-tomcat-9.0.33\temp"
    Using JRE_HOME:        "C:\Program Files\Java\openjdk-11.0.2"
    Using CLASSPATH:       "C:\apache-tomcat-9.0.33\bin\bootstrap.jar;C:\apache-tomcat-9.0.33\bin\tomcat-juli.jar"
    17-Mar-2020 16:11:03.226 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.33
    17-Mar-2020 16:11:03.234 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Mar 11 2020 09:31:38 UTC
    17-Mar-2020 16:11:03.234 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.33.0
    17-Mar-2020 16:11:03.234 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Windows 10
    17-Mar-2020 16:11:03.234 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            10.0
    17-Mar-2020 16:11:03.235 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
    17-Mar-2020 16:11:03.235 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             C:\Program Files\Java\openjdk-11.0.2
    17-Mar-2020 16:11:03.235 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.2+9
    17-Mar-2020 16:11:03.235 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
    17-Mar-2020 16:11:03.236 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         C:\apache-tomcat-9.0.33
    17-Mar-2020 16:11:03.236 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         C:\apache-tomcat-9.0.33
    17-Mar-2020 16:11:03.262 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
    17-Mar-2020 16:11:03.262 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
    17-Mar-2020 16:11:03.262 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
    17-Mar-2020 16:11:03.263 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\apache-tomcat-9.0.33\conf\logging.properties
    17-Mar-2020 16:11:03.263 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    17-Mar-2020 16:11:03.264 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dhttp.nonProxyHosts=localhost|127.0.0.1|VEGAOFFICE
    17-Mar-2020 16:11:03.264 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
    17-Mar-2020 16:11:03.264 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
    17-Mar-2020 16:11:03.264 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
    17-Mar-2020 16:11:03.264 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\apache-tomcat-9.0.33
    17-Mar-2020 16:11:03.265 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-9.0.33
    17-Mar-2020 16:11:03.265 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\apache-tomcat-9.0.33\temp
    17-Mar-2020 16:11:03.265 INFO [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: [C:\Program Files\Java\openjdk-11.0.2\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\Program Files\OpenVPN\bin;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Java\jdk1.8.0_66\bin;C:\apache-cxf-3.2.2\bin;C:\axis-1_4\bin;C:\Program Files\IEDriverServer_x64_2_53_1\;C:\Program Files\phantomjs-1.9.8-windows\;C:\Program Files\chromedriver_win32\;C:\Program Files\Git\cmd;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Users\rbott\AppData\Local\Microsoft\WindowsApps;C:\Users\rbott\AppData\Roaming\com.wildix\wildixzd-web\2.0.11\;C:\Users\rbott\AppData\Roaming\npm;.]
    17-Mar-2020 16:11:04.047 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
    17-Mar-2020 16:11:05.021 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [2,235] milliseconds
    17-Mar-2020 16:11:05.206 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
    17-Mar-2020 16:11:05.207 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.33]
    17-Mar-2020 16:11:05.236 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9.0.33\webapps\docs]
    17-Mar-2020 16:11:06.886 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [818] milliseconds.
    17-Mar-2020 16:11:06.943 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9.0.33\webapps\docs] has finished in [1,707] ms
    17-Mar-2020 16:11:06.947 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9.0.33\webapps\examples]
    17-Mar-2020 16:11:08.183 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9.0.33\webapps\examples] has finished in [1,237] ms
    17-Mar-2020 16:11:08.185 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9.0.33\webapps\host-manager]
    17-Mar-2020 16:11:08.291 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9.0.33\webapps\host-manager] has finished in [106] ms
    17-Mar-2020 16:11:08.292 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9.0.33\webapps\manager]
    17-Mar-2020 16:11:08.397 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9.0.33\webapps\manager] has finished in [104] ms
    17-Mar-2020 16:11:08.400 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-9.0.33\webapps\ROOT]
    17-Mar-2020 16:11:08.494 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-9.0.33\webapps\ROOT] has finished in [94] ms
    17-Mar-2020 16:11:08.501 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
    17-Mar-2020 16:11:08.526 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [3,503] milliseconds
    17-Mar-2020 16:11:08.923 INFO [http-nio-8080-exec-6] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying deployment descriptor [C:\apache-tomcat-9.0.33\conf\Catalina\localhost\JSF23WebApp.xml]
    17-Mar-2020 16:11:08.928 WARNING [http-nio-8080-exec-6] org.apache.catalina.startup.HostConfig.deployDescriptor The path attribute with value [/JSF23WebApp] in deployment descriptor [C:\apache-tomcat-9.0.33\conf\Catalina\localhost\JSF23WebApp.xml] has been ignored
    17-Mar-2020 16:11:11.984 INFO [http-nio-8080-exec-6] 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.
    17-Mar-2020 16:11:12.209 INFO [http-nio-8080-exec-6] org.jboss.weld.environment.servlet.EnhancedListener.onStartup WELD-ENV-001008: Initialize Weld using ServletContainerInitializer
    17-Mar-2020 16:11:12.340 INFO [http-nio-8080-exec-6] org.jboss.weld.bootstrap.WeldStartup.<clinit> WELD-000900: 3.1.3 (Final)
    17-Mar-2020 16:11:12.851 WARN [http-nio-8080-exec-6] org.jboss.weld.environment.servlet.WeldServletLifecycle.initialize WELD-ENV-000028: Weld initialization skipped - no bean archive found
    17-Mar-2020 16:11:13.024 INFO [http-nio-8080-exec-6] com.sun.faces.config.ConfigureListener.contextInitialized Initializing Mojarra 2.3.9 ( 20190401-1936 77894020e94a338c9701619b7ef6e9871c5a9079) for context '/JSF23WebApp'
    17-Mar-2020 16:11:13.567 INFO [http-nio-8080-exec-6] com.sun.faces.spi.InjectionProviderFactory.createInstance JSF1048: PostConstruct/PreDestroy annotations present.  ManagedBeans methods marked with these annotations will have said annotations processed.
    17-Mar-2020 16:11:14.128 SEVERE [http-nio-8080-exec-6] 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:4688)
            at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5151)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
            at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:631)
            at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:487)
            at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1642)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:289)
            at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
            at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
            at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1590)
            at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:1019)
            at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:355)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:666)
            at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
            at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:53)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
            at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
            at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
            at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
            at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
            at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            at java.base/java.lang.Thread.run(Thread.java:834)
        Caused by: javax.faces.FacesException: Unable to find CDI BeanManager
            at com.sun.faces.application.ApplicationImpl.isJsf23(ApplicationImpl.java:2714)
            at com.sun.faces.application.ApplicationImpl.addELResolver(ApplicationImpl.java:549)
            at javax.faces.application.ApplicationWrapper.addELResolver(ApplicationWrapper.java:611)
            at org.jboss.weld.environment.servlet.jsf.WeldApplication.<init>(WeldApplication.java:72)
            at org.jboss.weld.environment.servlet.jsf.WeldApplicationFactory.getApplication(WeldApplicationFactory.java:46)
            at com.sun.faces.application.InjectionApplicationFactory.getApplication(InjectionApplicationFactory.java:88)
            at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:153)
            at com.sun.faces.lifecycle.ClientWindowFactoryImpl.<init>(ClientWindowFactoryImpl.java:63)
            at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
            at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
            at java.base/java.lang.Class.newInstance(Class.java:584)
            at javax.faces.FactoryFinderInstance.getImplGivenPreviousImpl(FactoryFinderInstance.java:391)
            at javax.faces.FactoryFinderInstance.getImplementationInstance(FactoryFinderInstance.java:255)
            at javax.faces.FactoryFinderInstance.getFactory(FactoryFinderInstance.java:529)
            at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:292)
            at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:354)
            ... 48 more
    17-Mar-2020 16:11:14.195 SEVERE [http-nio-8080-exec-6] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
    17-Mar-2020 16:11:14.199 SEVERE [http-nio-8080-exec-6] org.apache.catalina.core.StandardContext.startInternal Context [/JSF23WebApp] startup failed due to previous errors
    17-Mar-2020 16:11:14.214 SEVERE [http-nio-8080-exec-6] javax.faces.FactoryFinderInstance.getFactory Application was not properly initialized at startup, could not find Factory: javax.faces.application.ApplicationFactory. Attempting to find backup.
    17-Mar-2020 16:11:14.215 SEVERE [http-nio-8080-exec-6] com.sun.faces.config.ConfigureListener.contextDestroyed 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.FactoryFinderInstance.getFactory(FactoryFinderInstance.java:541)
            at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:292)
            at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:152)
            at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:367)
            at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4735)
            at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5401)
            at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
            at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:631)
            at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:487)
            at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1642)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:289)
            at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
            at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
            at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1590)
            at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:1019)
            at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:355)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:666)
            at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
            at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:53)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
            at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
            at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
            at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
            at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
            at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            at java.base/java.lang.Thread.run(Thread.java:834)
    17-Mar-2020 16:11:15.342 INFO [http-nio-8080-exec-6] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of deployment descriptor [C:\apache-tomcat-9.0.33\conf\Catalina\localhost\JSF23WebApp.xml] has finished in [6,420] ms

so I searched Google for those errors:

1) com.sun.faces.config.ConfigurationException: Factory 'javax.faces.lifecycle.ClientWindowFactory' was not configured properly. ( a possible solution here )

2) javax.faces.FacesException: Unable to find CDI BeanManager ( a possible solution here

there were many solutions proposed .. below some of the tried ones ..

1) empty context.xml .. as it is not necessary .. i am using Mojarra 2.3 .. before it was (as said by BalusC here :

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

2) tried to edit the empty beans.xml file like this:

<?xml version="1.0" encoding="UTF-8"?>
    <beans 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/beans_2_0.xsd"
        bean-discovery-mode="all" 
        version="2.0">
    </beans>

3) also installed JSTL API (downloaded jakarta.servlet.jsp.jstl-api-1.2.7.jar from Maven repo.)..

despite these attempts, I always get the same error (above)..

I have attached the source code of my project (a zipped file) web.zip: what is my mistake? (maybe it depends on Open Jdk 11 ??)

thanks...

Kukeltje
  • 12,223
  • 4
  • 24
  • 47
afterbit
  • 383
  • 7
  • 20
  • Did you try posting the errors you get in a searchengine? Any result? I know there are/will be hits in at least stackoverflow – Kukeltje Mar 17 '20 at 16:16
  • yes .. i searched on Google (javax.faces.FacesException: Unable to find CDI BeanManager).. and tried the solutions proposed (..as i said above..).. but the error persist.. – afterbit Mar 17 '20 at 16:47
  • You did not mention that the Q/A you found were the result of searching for this error. To me it seemed to did those things and THAT resulted in this error. I'll see if I can find something, but please keep searching. – Kukeltje Mar 17 '20 at 17:17
  • i updated my question (Above) to be more clear.. – afterbit Mar 18 '20 at 08:38
  • Thanks for mentioning the steps that you've taken. Adding links to explicit question with answers you tried is btw helpfull too. Then we know which ones you've read and can either exclude them in our own searches or inspect them if you missed something. I personally use JavaEE servers (wildfly in my case, but you can use TomEE too) to prevent all these configuration things. JavaEE servers in web profile mode are very lightweight too – Kukeltje Mar 18 '20 at 09:21
  • updated question with some links to possible solutions (there are actually many many articles to read ..) – afterbit Mar 18 '20 at 09:35
  • Let us [continue this discussion in chat](https://chat.stackoverflow.com/rooms/209836/discussion-between-kukeltje-and-afterbit). – Kukeltje Mar 18 '20 at 09:44

2 Answers2

-1

Verify if the build classes have been copied to tomcat.

${tomcat_home}\wtpwebapps\${project_name}\WEB-INF\classes

or

${tomcat_home}\webapps\${project_name}\WEB-INF\classes

or

${tomcat_home}\(.metadata\.plugins...)\{project_name}\WEB-INF\classes
Suraj Rao
  • 29,388
  • 11
  • 94
  • 103
-2
<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>fri</groupId>
  <artifactId>jsfMavenEclipse</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.glassfish</groupId>   <!-- Oracle -->
      <artifactId>javax.faces</artifactId>
      <version>2.3.9</version>
    </dependency>

    <dependency>
      <groupId>org.jboss.weld.servlet</groupId>   <!-- Red Hat -->
      <artifactId>weld-servlet-shaded</artifactId>
      <version>3.1.2.Final</version>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

    </plugins>

  </build>

</project>
Harsh Lad
  • 9
  • 3