JasperException异常:
tomcat 6 发布应用后,访问jsp报异常: org.apache.jasper.JasperExceptionjava.lang.NullPointerException。
出现主要原因:(1)web应用没有导入jsp-api.jar包,导致编译未通过。
(2)web应用中jsp-api.jar包和\apache-tomcat-XXX\lib下面的jsp-api.jar冲突,虽然编译通过,但是在执行web应用的时候,出现两个或两个以上的jsp-api.jar包,系统在调用jar包中的方法时候,不知道调用哪个包中的方法,从而抛出该异常。
解决办法:导入缺失的jar包,删除多余的jar包,即使是不同版本的同个jar包,也不能有多个。.
通常存放jar包的地方有两个:(1)web工程\WebRoot\Web-INF\lib目录下。(2)web服务器Tomcat下有两个目录:\apache-tomcat-X.X.X\lib\该目录是Tomcat自带的jar包,该目录下的jar包不能和web工程\WebRoot\Web-INF\lib目录下的jar包有重复,该目录下面就包含了jsp-api.jar,和servlet-api.jar两个jar包;\apache-tomcat-X.X.X\webapps\Web工程名\WEB-INF\lib该目录下面存放的是部署到Tomcat上的web工程的jar包,该目录下的jar文件和web工程\WebRoot\Web-INF\lib目录下的jar文件是一样的。
MyEclipse和Eclipse中开发Web应用: 在MyEclipse中新建一个Web工程,在该工程下面会生成一个Java EE 5 Libraries的系统文件,在该文件下面有个javaee.jar包,该jar文件提供了JSP和Servlet开发的一系列接口,因此在工程的Web-INF/lib目录下面可以不用导入jsp-api.jar, servlet-api.jar文件就可以通过编译,如果是用Eclipse工具的话,那么要额外的导入这两个文件才能通过编译。但是,导入这两个包后,在发布到Tomcat的时候,很容易和\apache-tomcat-X.X.X\lib\目录下的jsp-api.jar, servlet-api.jar这两个文件发生冲突。