日期:2014-05-17  浏览次数:20804 次

求助:导入自定义标签的jar包 出现NoClassDefFoundError:JspException
写了个简单的自定义标签类 把类和tld文件(放在META-INF下)打成jar包 然后导入新的web工程下 访问使用自定义标签的jsp页面出现下面的错误

exception 

javax.servlet.ServletExceptionjava.lang.NoClassDefFoundError: JspException
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:343)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause 

java.lang.NoClassDefFoundError: JspException
java.lang.Class.getDeclaredMethods0(Native Method)
java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
java.lang.Class.privateGetPublicMethods(Class.java:2641)
java.lang.Class.getMethods(Class.java:1457)


多刷新几遍 就变成

exception 

org.apache.jasper.JasperException: java.lang.NoClassDefFoundError: org.apache.jsp._1_jsp
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:168)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.NoClassDefFoundError: org.apache.jsp._1_jsp
java.net.URLClassLoader$1.run(URLClassLoader.java:366)
java.net.URLClassLoader$1.run(URLClassLoader.java:355)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:354)



就这两个错误来回变

运行环境 tomcat7.0 jdk1.7
jar包是放在WEB-INF/lib下面 
我把standard-1.1.2.jar和jstl.jar放在这个目录下 jsp页面使用jstl标签都正常不报错
打包命令 jar -cvf example.jar cn META-INF
或者是用eclipse打包 都报一样的错误  到底是打包错了 还是哪里错了..
昨天晚上学习时遇到的问题 一直搞到现在都没结果 求大神指点
java NoClassDefFoundError 自定义标签打包 jar

------解决方案--------------------
你用的 tomcat 几?然后,把你的 jsp 
<%@taglib

标签定义发一下
------解决方案--------------------
classnotfound
类未加载吧。
楼主在随便一个servlet的程序中添加
try {
Class<?> loadClass = this.getClass().getClassLoader().loadClass("com。Test3");//这里填包名+类名

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStack