Cassandra, hector, maven and tomcat
Cassandra (v0.7 and 0.8), hector (version compatible with Cassandra), maven and tomcat bound together result in a warning at tomcat startup :
INFO: validateJarFile(/...<webappspath>.../WEB-INF/lib/servlet-api-2.5-20081211.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Nothing harmful here, but as we want to do things as clean as possible we should avoid violating Servlet Spec 2.3.
So running a dependency:tree help to find out the guilty dependency :
[INFO] +- me.prettyprint:hector-core:jar:0.8.0-2:compile
[INFO] | +- org.apache.cassandra:cassandra-all:jar:0.8.1:compile
[INFO] | | +- org.apache.cassandra.deps:avro:jar:1.4.0-cassandra-1:compile
[INFO] | | | \- org.mortbay.jetty:jetty:jar:6.1.22:compile
[INFO] | | | \- org.mortbay.jetty:servlet-api:jar:2.5-20081211:compile
Hum hum, org.mortbay.jetty:servlet-api:jar:2.5-20081211. We found the responsible of the problem.
Using <dependencymanagement> in our pom.xml file we will be able to mark this dependency as provided and the problem should flight away :
<dependencymanagement>Build, deploy, and that's it !
<dependencies>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5-20081211</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencymanagement>