首先记录一下如何解决此章节CD中附带的helloapp无法启动的问题
我用的tomcat版本是:7.0.47;为了便于控制,针对此章节的helloapp,我在tomcat/conf/Catalina/localhost中定义了helloapp6.xml文件,内容是:
<Context path="/helloapp6" docBase="/media/Develop/WEB_Develop/TomCat+JAVADEV_CD/data/sourcecode/chapter06/helloapp" reloadable="true"/>,即实际helloapp文件位于/media/Develop/WEB_Develop/TomCat+JAVADEV_CD/data/sourcecode/chapter06/helloapp目录
然后,启动tomcat,却发现此helloapp6无法启动。查看日志,发现有报错:Caused by: java.lang.NoClassDefFoundError: Lorg/apache/AnnotationProcessor
通过查资料,找到如下解决方法:
在/media/Develop/WEB_Develop/TomCat+JAVADEV_CD/data/sourcecode/chapter06/helloapp/src目录中建立文件:org/apache/AnnotationProcessor.java,其内容为: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;
}
然后编译此文件,得到org/apache/AnnotationProcessor.class文件,在把此文件移位到:/media/Develop/WEB_Develop/TomCat+JAVADEV_CD/data/sourcecode/chapter06/helloapp/WEB-INF/classes/org/apache中即可
然后,重新启动tomcat,则helloapp6就可以正常启动了
《TomCat与Java Web开发技术详解》(第二版) 第六章节对应CD附带的helloapp无法启动的问题解决,布布扣,bubuko.com