JSP-导入taglib 出现classNotFound异常
来源:互联网 发布:js 老虎机抽奖效果 编辑:程序博客网 时间:2024/06/08 09:57
案例
前端登录跳转到指定jsp,报classNoFoundException,原因是页面导入 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 导致的
Caused by: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.jsp.common.index_005fmenu_jspat java.net.URLClassLoader$1.run(URLClassLoader.java:366)at java.net.URLClassLoader$1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:354)at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:121)at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)... 52 more
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency>
解决方案
经网上搜索,是缺少jstl相关包的问题,刚才我们只是导入了jstl-api,而没有导入jstl的实现,所以再导入jstl 的实现。去mvnrepository上找jstl 的实现,基本上有两个版本,一个是glassfish 的jstl-impl, 另一个是apache的taglibs-standard-impl,一直犹豫不决该用谁,最后在stackoverflow.com/a/25374024/1443527上发现网友分享了他实现的经验,他用的是glassfish版本,所以我们也引人这个。由于tomcat7是兼容j2ee 3.0规范的,所以我们将jstl 依赖的东西给去除掉,防止和tomcat自身的servlet jar包冲突,改正后的依赖为
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jstl-impl</artifactId> <version>1.2</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> </exclusion> <exclusion> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> </exclusion> </exclusions> </dependency>
顺便说一下jstl-impl-1.2.jar 和taglibs-standard-impl-1.2.1.jar 的区别,这两个包的内容很相似,后者应该是前者的一个再打包,因为Apache的taglibs工程从2009年以后一直处于停止状态。
如果你要引人后者,那么依赖应该为:
<dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-spec</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.1</version> </dependency>参考文章:http://www.javacoder.cn/?p=195
0 0
- JSP-导入taglib 出现classNotFound异常
- eclipse 突然出现异常 classnotfound
- eclipse已经导入jar包了,但还是出现classNotFound异常
- Eclipse 中 运行 J2me 程序出现ClassNotFound的异常
- Eclipse 中 运行 J2me 程序出现ClassNotFound的异常
- rmi的ClassNotFound 异常
- JSP:PLUGIN ClassNotFound错误
- jsp taglib
- jsp taglib
- 对两种web开发中经常出现的异常问题的总结(NoClassDefFound,ClassNotFound)
- 关于java实现的mapreduce程序打包后通过脚本运行出现classnotfound异常
- hive 中的异常:1、ClassNotFound
- Tomcat fastjson 发生classnotfound 异常
- JSP指令[三]-------Taglib
- jsp taglib 自定义标签
- JSP语法 Taglib指令
- JSP中使用Taglib
- jsp中的taglib
- 大学生如何keep energetic
- 小凡的Linux主机与时间服务器同步记录
- ajax跨域post方式
- WCF-省略DataContract标记
- UNIX/Linux 下终端控制字符
- JSP-导入taglib 出现classNotFound异常
- 近期javaWEB项目总结 1
- nginx服务器安装及配置文件详解
- WebService学习总结 三 利用本地wsdl文档生成客户端代码和TCP/IP工具监听请求
- NYOJ-7-街区最短路径问题
- 书单集合
- MySQL数据类型
- oracle从入门到精通の1-设计范式
- c#程序打包发布