项目

一般

简介

java.lang.Exception: java.lang.NoClassDefFoundError: org/apache/catalina/comet/CometProcessor

由 彭 博 在 大约 3 年 之前添加

问题:

java.lang.Exception: java.lang.NoClassDefFoundError: org/apache/catalina/comet/CometProcessor
    at com.apusic.deploy.runtime.J2EEApplication.startService(J2EEApplication.java:1094)
    at com.apusic.service.Service.start(Service.java:205)
    at com.apusic.deploy.runtime.J2EEDeployer.startUserApplications(J2EEDeployer.java:175)
    at com.apusic.deploy.runtime.J2EEDeployer.startService(J2EEDeployer.java:142)
    at com.apusic.service.Service.start(Service.java:205)
    at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.apusic.jmx.MBeanDescriptor.invoke(MBeanDescriptor.java:551)
    at com.apusic.jmx.DynamicMBeanSupport.invoke(DynamicMBeanSupport.java:62)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
    at com.apusic.server.J2EEServer.start(J2EEServer.java:653)
    at com.apusic.server.J2EEServer.startup(J2EEServer.java:374)
    at com.apusic.server.Main.main(Main.java:35)
Caused by: java.lang.NoClassDefFoundError: org/apache/catalina/comet/CometProcessor
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at com.apusic.util.UCPClassLoader.defineClass(UCPClassLoader.java:303)
    at com.apusic.util.UCPClassLoader.access$000(UCPClassLoader.java:39)
    at com.apusic.util.UCPClassLoader$1.run(UCPClassLoader.java:185)
    at com.apusic.util.UCPClassLoader$1.run(UCPClassLoader.java:179)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.apusic.util.UCPClassLoader.findClass(UCPClassLoader.java:179)
    at com.apusic.web.container.ReloadableClassLoader.findClass(ReloadableClassLoader.java:294)
    at com.apusic.web.container.ReloadableClassLoader.loadClassInternal(ReloadableClassLoader.java:186)
    at com.apusic.web.container.ReloadableClassLoader.loadClass(ReloadableClassLoader.java:153)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.apusic.web.container.ReloadableClassLoader.loadClassInternal(ReloadableClassLoader.java:191)
    at com.apusic.web.container.ReloadableClassLoader.loadClass(ReloadableClassLoader.java:153)
    at com.apusic.web.container.JSPClassLoader.loadClass(JSPClassLoader.java:97)
    at com.apusic.web.container.CompositeLoaderDelegate.loadClass(CompositeLoaderDelegate.java:60)
    at com.apusic.web.container.ServletClassLoader.loadClass(ServletClassLoader.java:128)
    at com.apusic.web.container.ServletClassLoader.loadClass(ServletClassLoader.java:142)
    at com.apusic.deploy.runtime.WebModule.getComponentClasses(WebModule.java:1193)
    at com.apusic.deploy.runtime.WebModule.resolveDeclaredComponents(WebModule.java:2860)
    at com.apusic.deploy.runtime.WebModule.load(WebModule.java:2080)
    at com.apusic.deploy.runtime.J2EEApplication.load(J2EEApplication.java:1575)
    at com.apusic.deploy.runtime.J2EEApplication.startService(J2EEApplication.java:1056)
    ... 14 more

排查过程:

查看日志,应用应该是使用了comet4j功能,查看到应用web.xml里面写了,然后尝试注释应用的这段代码

 

解决方案:

注释掉应用里面的comet4j容器监听。