2014-09-04 57 views
0

我正在開發一個maven項目。已在tomcat7一個監聽器類,但是當我部署我得到以下錯誤:聽衆類未找到

監聽器類

public class DBInitialisationListener implements ServletContextListener { 

public void contextInitialized(ServletContextEvent event) { 

    System.out.println("Db Initialised"); 
} 

public void contextDestroyed(ServletContextEvent event) { 
    DatabaseFactory.close(); 
    System.out.println("Db Closed"); 
} 
} 

的web.xml

<listener> 
     <listener-class>com/nrift/ovmgmt/core/DBInitialisationListener</listener-class> 
</listener> 

我的錯誤日誌:

Sep 04, 2014 2:14:31 PM org.apache.catalina.core.StandardContext listenerStart 
SEVERE: Error configuring application listener of class com/nrift/ovmgmt/core/DBInitialisationListener 
java.lang.NoClassDefFoundError: IllegalName: com/nrift/ovmgmt/core/DBInitialisationListener 
    at java.lang.ClassLoader.preDefineClass(ClassLoader.java:655) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:794) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2888) 
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1172) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4733) 
    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:471) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 

回答

1

您必須指出軟件包類別爲definde,我的意思是,帶點「。」。

<listener> 
     <listener-class>com.nrift.ovmgmt.core.DBInitialisationListener</listener-class> 
</listener> 

這是因爲Maven的沒有找到類

要檢查類已<listener-class>標籤正確添加的原因,嘗試喲做出CTRL+Click在類

1

類名是偵聽器配置不正確。使用如下。

<listener> 
    <listener-class>com.nrift.ovmgmt.core.DBInitialisationListener</listener-class> 
</listener>