I've been using tomcat7-maven-plugin. I want to run my webapp which connects to the PostgreSQL database by using the embedded tomcat. This is the related part of my POM file:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<path>/</path>
<attachArtifactClassifierType>war</attachArtifactClassifierType>
<enableNaming>true</enableNaming>
<extraDependencies>
<extraDependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>8.4-701.jdbc4</version>
</extraDependency>
</extraDependencies>
</configuration>
</execution>
</executions>
Executing tomcat7:run fails with
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:236)
... 29 more
The dependency itself is correct (http://repo1.maven.org/maven2/postgresql/postgresql/8.4-701.jdbc4/).
I use Maven 3.