严重: Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: BodyTagSupport
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1195)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1422)
at org.apache.jasper.compiler.Parser.parse(Parser.java:130)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:156)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
         ..........(内容过长,删除了一部分)
    为什么会找不到BodyTagSupport这个类呢, 这个类是不是就是tomcat(6.0)下的jap-api.jar里面的那个? 我试着把tomcat下的jap-api.jar复制到项目里,结果报N多空指针. 请问大虾们怎么解决这个异常... 谢谢大家了

解决方案 »

  1.   

    把tomcat下的jsp-api.jar也加到你的项目中来
      

  2.   

      我试过了,把tomcat下的jsp-api.jar复制到项目下,结果倒是没有报找不到BodyTagSupport这类了,但是报好几个莫名其妙的空指针错. 
      我发现项目下的struts2-core-2.1.8.1.jar里面有个StrutsBodyTagSupport.class,会不会是这个jar和tomcat下的jsp-api.jar包起冲突了呢?
      我删除项目里的struts2-core-2.1.8.1.jar启动tomcat就报异常,请问如果是这两个jar起冲突,该怎么处理呢
      

  3.   

    classpath设置问题。
    应用包出来问题
      

  4.   

       你的意思是在classpath中加入E:\apache-tomcat-6.0.32\lib\jsp-api.jar吗? 假如是与其它的jar起冲突,会出现ClassNotFoundException异常吗?
      

  5.   

    问题“基本”解决了。   为什么说“基本”呢,因为出了个很奇怪的现象,在项目部署之前要加入jsp-api.jar和servlet-api.jar这两个包,这样在启动tomcat时才不会报错, 但是在浏览器上运行项目时,就出问题了(意思是项目下的jar和tomcat下的jar重复了)。
       我现在的做法就是:先在项目中加入jsp-api.jar和servlet-api.jar这两个包,后面启动tomcat(不报错),运行页面(报错),然后停止tomcat,去tomcat的webapps下把项目里面的jsp-api.jar和servlet-api.jar这两个包删除,然后再次启动tomcat(正常),运行页面(正常)。
    我现在的疑问:
       为什么tomcat明明有jsp-api.jar和servlet-api.jar这两个包,而如果项目在不加入这两个包的时候,启动tomcat就会报错的(就是找不到HttpSessionListener.class这个类)。在加入那两个包后,在项目运行一次后又说这两个jar和tomcat重复了,难道tomcat在myeclipse中运行时,不加载自己的lib吗?而当项目被编译后,在webapps里面,启动tomcat时才会加载自己的lib吗?
     

    请高手们帮忙解答下,谢谢
      

  6.   

    报空指针。。那就一看看啊空指针可能是你自定义标签的时候 代码写的不严谨 导致的列???不要怕nullPoint  因为这个问题最简单,多半都是你的问题
      

  7.   

    嗯,我再去看看空指针。。
        就是不知道为什么开始的时候需要jsp-api.jar和servlet-api.jar这两个包才能启动tomcat,而后来又成多余的了,奇怪
      

  8.   

    你总得把你的开发环境贴出来吧,什么开发文语言、什么版本的JDK、Tomcat的版本、IDE是什么等。
      

  9.   

    myeclipse8.6 + tomcat6.0 + JDK1.6 + MySQL5.1   我自己新建项目时不会出这种情况,这是从外面导入的一个项目,也是第一次出现这种情况