I'm trying to upgrade a small application from JSF 1.2, Richfaces 3.3.3 to JSF 2.0.2 and RF 4.3.7. It seems to me that i did all configurations but when i run the application with jetty i have this error :
juil. 17, 2015 12:21:12 PM com.sun.faces.config.ConfigureListener contextInitialized
INFOS: Initialisation de Mojarra 2.0.2 (FCS b10) pour le contexte '/template'
[WARNING] failed org.mortbay.jetty.plugin.Jetty6PluginWebAppContext@2dafae61{/template,D:\workspace\catalog-jsf2\catalog-jsf2-web\src\main\webapp}: java.lang.NoSuchMethodError: org.richfaces.log.RichfacesLogger.getLogger()Lorg/slf4j/Logger;
[ERROR] EXCEPTION
java.lang.NoSuchMethodError: org.richfaces.log.RichfacesLogger.getLogger()Lorg/slf4j/Logger;
at org.ajax4jsf.renderkit.ChameleonRenderKitFactory.<clinit>(ChameleonRenderKitFactory.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:586)
at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:472)
at javax.faces.FactoryFinder.access$400(FactoryFinder.java:139)
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:796)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:306)
at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:303)
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:220)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.plugin.AbstractJettyRunMojo.restartWebApp(AbstractJettyRunMojo.java:458)
at org.mortbay.jetty.plugin.AbstractJettyRunMojo$1.filesChanged(AbstractJettyRunMojo.java:419)
at org.mortbay.util.Scanner.reportBulkChanges(Scanner.java:486)
at org.mortbay.util.Scanner.reportDifferences(Scanner.java:352)
at org.mortbay.util.Scanner.scan(Scanner.java:280)
at org.mortbay.util.Scanner$1.run(Scanner.java:232)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
[WARNING] org.mortbay.jetty.plugin.AbstractJettyRunMojo$1@10e81646 failed on '[D:\workspace\catalog-jsf2\catalog-jsf2-web\pom.xml]
i'm not sure but i think there's an uncompatibilty between RF4.3.7 and slf4j 1.5.10.
pom.xml :
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ======================================================== -->
<!-- Parent -->
<!-- ======================================================== -->
<parent>
<groupId>com.companyname.application</groupId>
<artifactId>application-web-parent-jsf2</artifactId>
<version>trunk-SNAPSHOT</version>
</parent>
<!-- ======================================================== -->
<!-- Project configuration -->
<!-- ======================================================== -->
<artifactId>catalog-jsf2-web</artifactId>
<packaging>war</packaging>
<name>${project.name.prefix} - ${project.artifactId}</name>
<description>UI project for application webapp template</description>
<!-- =================================================== -->
<!-- Project properties -->
<!-- =================================================== -->
<!-- =================================================== -->
<!-- Project dependencies -->
<!-- =================================================== -->
<dependencies>
<!-- application dependencies -->
<dependency>
<groupId>com.companyname.application</groupId>
<artifactId>application-common-web-resources</artifactId>
</dependency>
<dependency>
<groupId>catalog-jsf2</groupId>
<artifactId>catalog-jsf2-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.companyname.application</groupId>
<artifactId>application-common-web-api</artifactId>
<exclusions>
<exclusion>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.el</groupId>
<artifactId>el-impl</artifactId>
</exclusion>
<exclusion>
<groupId>javax.el</groupId>
<artifactId>el-ri</artifactId>
</exclusion>
<exclusion>
<artifactId>servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
<exclusion>
<artifactId>jsf-api</artifactId>
<groupId>javax.faces</groupId>
</exclusion>
<exclusion>
<artifactId>jsf-impl</artifactId>
<groupId>javax.faces</groupId>
</exclusion>
<exclusion>
<artifactId>richfaces-impl</artifactId>
<groupId>org.richfaces.framework</groupId>
</exclusion>
<exclusion>
<artifactId>richfaces-api</artifactId>
<groupId>org.richfaces.framework</groupId>
</exclusion>
<exclusion>
<artifactId>richfaces-ui</artifactId>
<groupId>org.richfaces.ui</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-support</artifactId>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Gson: Java to Json conversion -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.2</version>
</dependency>
<!-- Apache CXF dependencies -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
</dependency>
</dependencies>
<!-- =================================================== -->
<!-- Project builds -->
<!-- =================================================== -->
<build>
<finalName>${project.artifactId}</finalName>
<!-- Generate the project WAR and an attached JAR with Java classes -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<configuration>
<additionalProjectFacets>
<wtpversion>2.0</wtpversion>
</additionalProjectFacets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
<!-- Retrieve and copy common web resources -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-and-unpack</id>
<phase>initialize</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.companyname.application</groupId>
<artifactId>application-common-web-resources</artifactId>
<version>${project.version}</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>src/main/webapp/resources/</outputDirectory>
<includes>**/fonts/*</includes>
<excludes>META-INF/</excludes>
</artifactItem>
<artifactItem>
<groupId>com.companyname.application</groupId>
<artifactId>application-common-web-resources</artifactId>
<version>${project.version}</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>src/main/webapp/</outputDirectory>
<includes>*.xhtml</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<!-- Use Jetty as Web container for webapp -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
<configuration>
<webAppSourceDirectory>src/main/webapp/</webAppSourceDirectory>
<contextPath>/template</contextPath>
<scanIntervalSeconds>5</scanIntervalSeconds>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8092</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<useTestClasspath>false</useTestClasspath>
<scanTargetPatterns>
<scanTargetPattern>
<directory>${basedir}/src/main/</directory>
<includes>
<include>**/*.properties</include>
</includes>
</scanTargetPattern>
</scanTargetPatterns>
</configuration>
<dependencies>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${faces.jsf.version}</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${faces.jsf.version}</version>
</dependency>
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>${richfaces.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
And parent :
<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>com.compName.appName</groupId>
<artifactId>appName-web-parent-jsf2</artifactId>
<version>trunk-SNAPSHOT</version>
<packaging>pom</packaging>
<name>${project.name.prefix} - ${project.artifactId}</name>
<description>Root POM for all appName Web projects with JSF2
</description>
<parent>
<groupId>com.compName.appName</groupId>
<artifactId>appName-parent</artifactId>
<version>trunk-SNAPSHOT</version>
</parent>
<!-- =================================================== -->
<!-- Project properties -->
<!-- =================================================== -->
<properties>
<javassist.version>3.14.0-GA</javassist.version>
<hsqldb.version>1.8.0.10</hsqldb.version>
<richfaces.version>4.3.7.Final</richfaces.version>
<servlet.version>3.1.0</servlet.version>
<servlet.jsp.version>2.0</servlet.jsp.version>
<servlet.jsp.jsp.version>2.1</servlet.jsp.jsp.version>
<servlet.jstl.version>1.2</servlet.jstl.version>
<faces.jsf.version>2.0.2</faces.jsf.version>
<selenium.version>2.12.0</selenium.version>
<xalan.version>2.7.0</xalan.version>
<h2.version>1.3.158</h2.version>
<fiji.version>1.0.2.111003</fiji.version>
<spring.security.version>3.0.5.RELEASE</spring.security.version>
</properties>
<!-- ======================================================== -->
<!-- Project dependencies -->
<!-- ======================================================== -->
<dependencyManagement>
<dependencies>
<!-- appName dependencies -->
<dependency>
<groupId>com.compName.appName</groupId>
<artifactId>appName-common-web-resources</artifactId>
<version>${appName.dependencies.version}</version>
</dependency>
<dependency>
<groupId>com.compName.appName</groupId>
<artifactId>appName-common-web-api</artifactId>
<version>${appName.dependencies.version}</version>
</dependency>
<!-- Spring dependencies -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Database dependencies -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
<scope>compile</scope>
</dependency>
<!-- Integration test dependencies -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>${xalan.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<version>${servlet.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>${servlet.jsp.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${servlet.jstl.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>${servlet.jsp.jsp.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${faces.jsf.version}</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${faces.jsf.version}</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>1.1.15</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<!-- RichFaces libraries -->
<dependency>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-bom</artifactId>
<version>${richfaces.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-impl</artifactId>
<version>${richfaces.version}</version>
<exclusions>
<exclusion>
<artifactId>richfaces-core-api</artifactId>
<groupId>org.richfaces.core</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-ui</artifactId>
<version>${richfaces.version}</version>
<exclusions>
<exclusion>
<artifactId>richfaces-core-api</artifactId>
<groupId>org.richfaces.core</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-impl</artifactId>
<version>4.0.0.ALPHA1</version>
<exclusions>
<exclusion>
<artifactId>richfaces-api</artifactId>
<groupId>org.richfaces.framework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-api</artifactId>
<version>${richfaces.version}</version>
</dependency>
<!-- JAVASSIST -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>${javassist.version}</version>
<scope>runtime</scope>
</dependency>
<!-- DAO: HSQLDB et MYSQL -->
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-ri</artifactId>
<version>1.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<!-- Log dependencies -->
<dependency>
<groupId>com.compName.logging</groupId>
<artifactId>log4j-custodian-daily-rolling-appender</artifactId>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Thanks in advance for your reply.