Apache:配置应用程序侦听器时出错

时间:2014-05-13 10:47:06

标签: java apache hibernate

当我尝试运行该应用程序时,我遇到了这个问题:

  

警告:[SetContextPropertiesRule] {Context}设置属性' source'   to' org.eclipse.jst.j2ee.server:CongressApp'没找到匹配的   属性。 2014年5月13日下午1:35:26   org.apache.catalina.core.StandardContext listenerStart SEVERE:错误   配置类的应用程序监听器   org.apache.catalina.deploy.ApplicationListener@bdeab   抛出java.lang.ClassNotFoundException:   com.iss.congress.core.util.CongressContextListener at   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)     在   org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)     在   org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)     在   org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)     在   org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4854)     在   org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)     在   org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     在   org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)     在   org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)     在   org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)     在   org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)     在   org.apache.catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1635)     在   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)     at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334)     在java.util.concurrent.FutureTask.run(FutureTask.java:166)at   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:722)

     

2014年5月13日下午1:35:26 org.apache.catalina.core.StandardContext   listenerStart SEVERE:配置类的应用程序侦听器时出错   org.apache.catalina.deploy.ApplicationListener@6a5b20   抛出java.lang.ClassNotFoundException:   com.iss.congress.core.util.CongressHttpSessionListener at   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)     在   org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)     在   org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)     在   org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)     在   org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4854)     在   org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)     在   org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     在   org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)     在   org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)     在   org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)     在   org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)     在   org.apache.catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1635)     在   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)     at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334)     在java.util.concurrent.FutureTask.run(FutureTask.java:166)at   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:722)

     

2014年5月13日下午1:35:26 org.apache.catalina.core.StandardContext   listenerStart SEVERE:配置类的应用程序侦听器时出错   org.apache.catalina.deploy.ApplicationListener@1bacb12   抛出java.lang.ClassNotFoundException:   com.iss.congress.core.util.HibernateListener at   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)     在   org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)     在   org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)     在   org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)     在   org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4854)     在   org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)     在   org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     在   org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)     在   org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)     在   org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)     在   org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:656)     在   org.apache.catalina.startup.HostConfig $ DeployDescriptor.run(HostConfig.java:1635)     在   java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)     at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334)     在java.util.concurrent.FutureTask.run(FutureTask.java:166)at   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:722)

在web.xml中,侦听器以这种方式配置:

<listener>
        <listener-class>com.iss.congress.core.util.CongressContextListener</listener-class>
    </listener>

    <listener>
        <listener-class>com.iss.congress.core.util.CongressHttpSessionListener</listener-class>
    </listener>


    <listener>
        <display-name>Hibernate Session Listener</display-name>
        <listener-class>com.iss.congress.core.util.HibernateListener</listener-class>
    </listener>

3 个答案:

答案 0 :(得分:5)

这是java.lang.ClassNotFoundException: com.iss.congress.core.util.HibernateListener的情况,这意味着类路径中不存在类HibernateListener。确保包含此类的jar存在于应用程序的WEB-INF/lib文件夹中。

如果该类存在于src文件夹中,请检查包名称。包名称/类名称区分大小写。

答案 1 :(得分:1)

可能有以下任何原因:

  1. 或者,您的类文件在指定位置不可用(请检查您的package_name / class_file_name.java)

  2. 或者,您的文件存在于指定位置,但是文件中存在错误,可以将其生成(生成类文件)

(对我来说,问题的原因是第2点。)问题的根本原因是,我更改(升级)了其余库的版本,这导致了现有类文件的问题。


我通过添加/选择适当的Apache Tomcat服务器解决了一个问题。

项目属性=> Java构建路径=>添加库=>选择Server Runtime =>单击“下一步”并选择“ Apache Tomcat” =>完成

答案 2 :(得分:0)

碰巧我在侦听器类中进行了编辑,然后将其保存并重新发布到tomcat中,发现找不到类错误。
我所做的是删除侦听器类中的更新,重新发布到tomcat,然后再次添加更新。.之所以这样做,是因为我怀疑由于任何原因,.class生成中的eclipse存在问题,尽管我几次清理了项目。
删除我的更新,保存(具有该类的新编译版本),然后再次添加我的更新已为我解决了该问题。
是的,这似乎不合逻辑,但有时会出现IDE问题。