Mojarra 2.1.0 - FCS does not work with tomcat 7

I am using JSF 2.1 (Mojarra 2.1.0 - FCS) with tomcat 7 as follows:

<dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.1.0-b11</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.1.0-b11</version> <scope>compile</scope> </dependency> 

when I tried to run it on tomcat 7, I got the following exception:

 java.lang.InstantiationException: com.sun.faces.application.ServletContextSensitiveSingletonStore at java.lang.Class.newInstance0(Class.java:340) at java.lang.Class.newInstance(Class.java:308) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4268) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4771) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:785) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:763) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:558) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:674) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:599) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:538) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1390) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:355) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:312) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:292) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:998) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:990) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:424) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:648) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:138) at org.apache.catalina.startup.Catalina.start(Catalina.java:576) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415) 

any ideas why i get this exception and how to solve it?

+1
source share
1 answer

This is a known issue . This is actually caused by question 1937 . In short, the annotation scanner contains randomly specific Glassfish-specific code that causes it to not work with basic servlet containers that do not come with built-in annotation scanners such as Tomcat and Jetty. This is fixed in 2.1.1.

So, to solve your problem, you need to upgrade to 2.1.1. Currently the latest version is 2.1.3, I recommend upgrading to the latest version. See also the Mojarra page for all information about Maven pom.

A completely different alternative is to replace Tomcat with a more complete container, such as Glassfish. This will give you, among other things, the advantage of EJB / JPA support out of the box, so that you can easily and easily create business services, complete background tasks, interact with the database using oneliners, etc.

+5
source

All Articles