NoClassDefFoundError в веб-приложении, работающем на Tomcat 7

У меня есть веб-приложение, написанное на Java с использованием инфраструктуры gucie-servlet, создаваемой Maven 3. Когда я развертываю его в контейнере Tomcat 7 и пытаюсь получить к нему доступ через браузер, Tomcat отвечает кодом состояния 404. Это журнал от Tomcat:

Apr 4, 2013 11:39:50 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextDestroyed()
Apr 4, 2013 11:39:50 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextDestroyed()
Apr 4, 2013 11:39:55 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class ru.hive.webserver.config.HiveServletConfig
java.lang.NoClassDefFoundError: ru/hive/base/db/modules/DatabaseModule
    at ru.hive.webserver.config.HiveServletConfig.getInjector(HiveServletConfig.java:24)
    at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:45)
    at ru.hive.webserver.config.HiveServletConfig.contextInitialized(HiveServletConfig.java:19)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: ru.hive.base.db.modules.DatabaseModule
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
    ... 17 more
Apr 4, 2013 11:39:55 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Apr 4, 2013 11:39:55 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Apr 4, 2013 11:39:55 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@e8606c')

Исключение говорит, что в CLASSPATH моего приложения нет класса с именем ru.hive.base.db.modules.DatabaseModule, но это не так:

frodo@shire:~/apache-tomcat-7.0.37/webapps/hive/WEB-INF/lib$ ls -l
total 30132
-rw-rw-r-- 1 frodo frodo     4467 нояб. 22 13:46 aopalliance-1.0.jar
-rw-rw-r-- 1 frodo frodo 27010023 апр.   4 11:39 base-0.0.42-SNAPSHOT.jar
-rw-rw-r-- 1 frodo frodo   232019 дек.  18 10:12 commons-beanutils-1.8.3.jar
-rw-rw-r-- 1 frodo frodo    58160 авг.   2  2011 commons-codec-1.4.jar
-rw-rw-r-- 1 frodo frodo   196768 дек.  18 10:12 commons-digester-2.1.jar
-rw-rw-r-- 1 frodo frodo   163151 нояб. 22 13:46 commons-io-2.1.jar
-rw-rw-r-- 1 frodo frodo    60686 авг.   2  2011 commons-logging-1.1.1.jar
-rw-rw-r-- 1 frodo frodo   189285 нояб. 28 15:01 gson-2.2.2.jar
-rw-rw-r-- 1 frodo frodo   710492 февр.  6 18:59 guice-3.0.jar
-rw-rw-r-- 1 frodo frodo    65012 февр. 13 13:21 guice-servlet-3.0.jar
-rw-rw-r-- 1 frodo frodo   352585 нояб. 22 13:46 httpclient-4.1.3.jar
-rw-rw-r-- 1 frodo frodo   181410 нояб. 22 13:46 httpcore-4.1.4.jar
-rw-rw-r-- 1 frodo frodo    26938 нояб. 22 13:46 httpmime-4.1.3.jar
-rw-rw-r-- 1 frodo frodo     2497 февр.  6 18:59 javax.inject-1.jar
-rw-rw-r-- 1 frodo frodo    31866 февр.  6 18:59 jsr305-2.0.1.jar
-rw-rw-r-- 1 frodo frodo    25962 нояб. 22 13:46 slf4j-api-1.6.4.jar
-rw-rw-r-- 1 frodo frodo   371816 нояб. 22 13:46 solr-solrj-4.0.0.jar
-rw-rw-r-- 1 frodo frodo   520969 нояб. 22 13:46 wstx-asl-3.2.7.jar
-rw-rw-r-- 1 frodo frodo   608239 нояб. 22 13:46 zookeeper-3.3.6.jar

JAR base-0.0.42-SNAPSHOT.jar содержит класс, который Tomcat может 'т найти. Структура каталогов внутри JAR такая же, как в полном имени класса в трассировке стека. Pom.xml для моего проекта:



    4.0.0
    webserver
    0.0.42-SNAPSHOT
    war
    Api servlet

    
        ru.hive
        main
        0.0.41-SNAPSHOT
        ../main
    

    
        
            dev

            
                true
            

            
                http://localhost:8983/solr
            

            
                
                    
                        org.apache.tomcat.maven
                        tomcat7-maven-plugin
                        2.0
                        
                            local_tomcat
                            http://192.168.0.39:8080/manager/text
                            /hive
                            true
                            user
                            pass
                        
                    
                
            
        
        
            production

            
                http://localhost:8983/solr/hive
            

            
                
                    
                        org.apache.tomcat.maven
                        tomcat7-maven-plugin
                        2.0
                        
                            production_tomcat
                            http://some.ip.address:8080/manager/text
                            /hive
                            true
                            user
                            pass
                        
                    
                
            
        
    

    
        
            ru.hive
            base
            0.0.42-SNAPSHOT
        

        
            com.google.inject.extensions
            guice-servlet
            3.0
        
        
            com.google.code.findbugs
            jsr305
            2.0.1
        
        
            org.apache.solr
            solr-solrj
            4.0.0
        
        
            com.google.code.gson
            gson
            2.2.2
        
        
            commons-digester
            commons-digester
            2.1
        
        
            javax.servlet
            servlet-api
            2.5
            provided
        

        
            junit
            junit
            4.11
            test
        
    

    
        
            
                false
            
            central
            Maven Repository Switchboard
            http://repo1.maven.org/maven2
        
        
            repo
            
                true
                ignore
            
            
                false
            
            file://${project.basedir}/lib
        
    

    
        
            
                never
            
            
                false
            
            central
            Maven Plugin Repository
            http://repo1.maven.org/maven2
        
    

    
        hive

        src/main/java
        src/main/scripts
        src/test/java
        target/classes
        target/test-classes
        target

        
            
                
                    maven-antrun-plugin
                    1.3
                
                
                    maven-assembly-plugin
                    2.2-beta-5
                
                
                    maven-dependency-plugin
                    2.1
                
                
                    maven-release-plugin
                    2.0
                
            
        

        
            
                maven-war-plugin
                2.3
                
                    
                        default-war
                        package
                        
                            war
                        
                        
                            
                                
                                    true
                                    lib/
                                
                            
                        
                    
                

                
                    
                        
                            true
                            lib/
                        
                    
                    
                        
                            src/main/webapp/META-INF
                            
                                context.xml
                            
                            true
                            META-INF
                        
                    
                
            

            
                maven-clean-plugin
                2.4.1
                
                    
                        default-clean
                        clean
                        
                            clean
                        
                    
                
            

            
                maven-install-plugin
                2.3.1
                
                    
                        default-install
                        install
                        
                            install
                        
                    
                
            

            
                maven-resources-plugin
                2.4.3
                
                    UTF-8
                
                
                    
                        default-resources
                        process-resources
                        
                            resources
                        
                    
                    
                        default-testResources
                        process-test-resources
                        
                            testResources
                        
                    
                
            

            
                maven-surefire-plugin
                2.7.1
                
                    
                        default-test
                        test
                        
                            test
                        
                    
                
            

            
                maven-compiler-plugin
                2.3.2
                
                    
                        default-testCompile
                        test-compile
                        
                            testCompile
                        
                    
                    
                        default-compile
                        compile
                        
                            compile
                        
                    
                
            
        

        
            
                src/main/resources
                true
            
        
    

    
        target/site
    

Итак, вопрос в том, что я делаю неправильно и почему я получаю это исключение ClassDefNotFound?

PS. Отредактированная версия конфигурации maven-war-plugin:


    maven-war-plugin
    2.3
    
        
            default-war
            package
            
                war
            
        
    
    
        
            
                src/main/webapp/META-INF
                
                    context.xml
                
                true
                META-INF
            
        
    
    

PPS. ru.hive.webserver.config.HiveServletConfig список классов

package ru.hive.webserver.config;

import javax.servlet.ServletContextEvent;

import ru.hive.base.db.modules.DatabaseModule;
import ru.hive.base.state.modules.StateManagerModule;
import ru.hive.webserver.api.ApiServlet;
import ru.hive.webserver.scheduler.Scheduler;

import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.servlet.GuiceServletContextListener;
import com.google.inject.servlet.ServletModule;

public class HiveServletConfig extends GuiceServletContextListener {

    @Override
    protected Injector getInjector() {
        return Guice.createInjector(new ServletModule() {
            @Override
            protected void configureServlets() {
                install(new DatabaseModule());
                install(new StateManagerModule());

                serve("/api").with(ApiServlet.class);
                serve("/scheduler").with(Scheduler.class);
            }
        });
    }

}

PPPS. Список JAR в:/lib

`-rw-r--r-- 1 jcdenton jcdenton   15264 марта 22 18:38 annotations-api.jar
-rw-r--r-- 1 jcdenton jcdenton   54176 марта 22 18:38 catalina-ant.jar
-rw-r--r-- 1 jcdenton jcdenton  132729 марта 22 18:38 catalina-ha.jar
-rw-r--r-- 1 jcdenton jcdenton 1563926 марта 22 18:38 catalina.jar
-rw-r--r-- 1 jcdenton jcdenton  255182 марта 22 18:38 catalina-tribes.jar
-rw-r--r-- 1 jcdenton jcdenton 1796326 марта 22 18:38 ecj-4.2.1.jar
-rw-r--r-- 1 jcdenton jcdenton   46085 марта 22 18:38 el-api.jar
-rw-r--r-- 1 jcdenton jcdenton  123241 марта 22 18:38 jasper-el.jar
-rw-r--r-- 1 jcdenton jcdenton  599131 марта 22 18:38 jasper.jar
-rw-r--r-- 1 jcdenton jcdenton   88690 марта 22 18:38 jsp-api.jar
-rw-r--r-- 1 jcdenton jcdenton  177599 марта 22 18:38 servlet-api.jar
-rw-r--r-- 1 jcdenton jcdenton    6873 марта 22 18:38 tomcat-api.jar
-rw-r--r-- 1 jcdenton jcdenton  795308 марта 22 18:38 tomcat-coyote.jar
-rw-r--r-- 1 jcdenton jcdenton  235411 марта 22 18:38 tomcat-dbcp.jar
-rw-r--r-- 1 jcdenton jcdenton   77364 марта 22 18:38 tomcat-i18n-es.jar
-rw-r--r-- 1 jcdenton jcdenton   48693 марта 22 18:38 tomcat-i18n-fr.jar
-rw-r--r-- 1 jcdenton jcdenton   51678 марта 22 18:38 tomcat-i18n-ja.jar
-rw-r--r-- 1 jcdenton jcdenton  123958 марта 22 18:38 tomcat-jdbc.jar
-rw-r--r-- 1 jcdenton jcdenton   23174 марта 22 18:38 tomcat-util.jar`

Ответы на вопрос(4)

Ваш ответ на вопрос