Tomcat7启动报错Caused by: java.lang.NoClassDefFoundError: Lorg/apache/AnnotationProcessor;

2014-2-17 12:12:11 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.29 using APR version 1.4.8.
2014-2-17 12:12:11 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2014-2-17 12:12:11 org.apache.catalina.core.AprLifecycleListener initializeSSL
信息: OpenSSL successfully initialized (OpenSSL 1.0.1e 11 Feb 2013)
2014-2-17 12:12:12 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8080"]
2014-2-17 12:12:12 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
2014-2-17 12:12:12 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1294 ms
2014-2-17 12:12:12 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
2014-2-17 12:12:12 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.50
2014-2-17 12:12:12 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\Workspaces\apache-tomcat-7.0.50\webapps\docs
2014-2-17 12:12:13 org.apache.tomcat.websocket.server.WsSci onStartup
信息: JSR 356 WebSocket (Java WebSocket 1.0) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or add the WebSocketJARs to the tomcat.util.scan.DefaultJarScanner.jarsToSkip property in $CATALINA_BASE/conf/catalina.properties. Note that the deprecated Tomcat 7 WebSocket API will be available.
2014-2-17 12:12:13 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\Workspaces\apache-tomcat-7.0.50\webapps\examples
2014-2-17 12:12:14 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2014-2-17 12:12:14 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2014-2-17 12:12:14 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@1758cd1')
2014-2-17 12:12:14 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\Workspaces\apache-tomcat-7.0.50\webapps\host-manager
2014-2-17 12:12:14 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\Workspaces\apache-tomcat-7.0.50\webapps\manager
2014-2-17 12:12:14 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\Workspaces\apache-tomcat-7.0.50\webapps\ROOT
2014-2-17 12:12:14 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\Workspaces\apache-tomcat-7.0.50\webapps\spm
2014-2-17 12:12:26 org.apache.catalina.core.ContainerBase addChildInternal
严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spm]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
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:634)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1230)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1876)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
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:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/AnnotationProcessor;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:263)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:142)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:407)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:883)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:378)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5343)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 11 more
Caused by: java.lang.ClassNotFoundException: org.apache.AnnotationProcessor
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 25 more
2014-2-17 12:12:26 org.apache.catalina.startup.HostConfig deployDirectory
严重: Error deploying web application directory D:\Workspaces\apache-tomcat-7.0.50\webapps\spm
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/spm]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:634)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1230)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1876)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
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:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
2014-2-17 12:12:26 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-8080"]
2014-2-17 12:12:26 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
2014-2-17 12:12:26 org.apache.catalina.startup.Catalina start
信息: Server startup in 13716 ms

解决方法:

在src下建package org.apache; 
添加AnnotationProcessor接口类
代码如下:
package org.apache;

import java.lang.reflect.InvocationTargetException;

import javax.naming.NamingException;

public interface AnnotationProcessor {
    public void postConstruct(Object instance) throws IllegalAccessException,
            InvocationTargetException;

    public void preDestroy(Object instance) throws IllegalAccessException,
            InvocationTargetException;

    public void processAnnotations(Object instance)
            throws IllegalAccessException, InvocationTargetException,
            NamingException;
}

 

posted @ 2014-02-17 13:13  荣子  阅读(3091)  评论(0编辑  收藏  举报