java - 在 JSP 中集成 Birt 报告

标签 java jsp tomcat

在服务器上运行我的报告时出现此异常“

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagSupport
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:275)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagSupport
 java.lang.ClassLoader.defineClass1(Native Method)
 java.lang.ClassLoader.defineClass(ClassLoader.java:621)
 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
 java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
 java.net.URLClassLoader.access$000(URLClassLoader.java:56)
 java.net.URLClassLoader$1.run(URLClassLoader.java:195)
 java.security.AccessController.doPrivileged(Native Method)
 java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
 java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 java.lang.ClassLoader.loadClass(ClassLoader.java:252)
 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
 java.lang.ClassLoader.defineClass1(Native Method)
 java.lang.ClassLoader.defineClass(ClassLoader.java:621)
 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
 java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
 java.net.URLClassLoader.access$000(URLClassLoader.java:56)
 java.net.URLClassLoader$1.run(URLClassLoader.java:195)
 java.security.AccessController.doPrivileged(Native Method)
 java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
 java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 java.lang.ClassLoader.loadClass(ClassLoader.java:300)
 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 java.lang.ClassLoader.loadClass(ClassLoader.java:252)
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1302)
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
 org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1237)
 org.apache.jasper.compiler.Parser.parseElements(Parser.java:1462)
 org.apache.jasper.compiler.Parser.parse(Parser.java:137)
 org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
 org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
 org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:170)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

谁能告诉我这个问题的原因和解决方法?

最佳答案

很可能您的 WEB-INF/lib 中有一些不必要的 JAR 文件,它们与 Tomcat 中已有的文件冲突。具体来说,这个类 javax/servlet/jsp/tagext/TagSupport 可以在 jsp-api.jar

中找到

但是在运行时,tomcat 服务器正在寻找不同的版本,这会导致 NoClassDefFound 错误。检查这些 JARS 是否重复。并将它们从 WEB-INF/lib

中删除

关于java - 在 JSP 中集成 Birt 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3117913/

相关文章:

java - GridBagLayout:添加复选框后更改对齐方式

java - 适用于 Java EE 开发人员的 Eclipse IDE 与 Eclipse Juno 之间的区别

java - 可以通过java检查网站是否在浏览器中打开

tomcat - JRuby : Warbler: Tomcat: Rails helpers not getting base URL with WAR extension suffix

java - 根据参数注入(inject)一个类

java - 如何从 Java 调用正在运行的 C# 应用程序中的方法?

java - java foreach循环中的数组引用

java - JSTL:嵌套的 forEach 循环。内容不显示在单独的行中

tomcat - apache tomcat 重定向 servlet 之间的请求

maven - 无法从jsf页面获取值