在Eclipse中用maven构建web项目时,如果在pom里写了servlet-api和jsp-api的依赖的话,即使scope为"provided",但在布署到tomcat时,启动tomcat服务器时会看到有一条警告信息:

servlet-api-2.5.jar jar not loaded

这是因为在布署时,eclipse把maven的所有依赖库(包括servlet-api和jsp-api)都布署到tomcat的WEB-INF/lib下了,网上也有人提过说这不会有什么问题,只是个警告,但我的情况是,在Tomcat6启动服务器没有问题,但在浏览器访问该Web应用时会出现NullPointer Exception:

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:538)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

root cause

java.lang.NullPointerException
org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:164)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

这显然不是我代码造成的,而是因为Tomcat主目录下的lib下本来就已经有servlet-api.jar和jsp-api.jar这两个库了,但是我的Web应用下的WEB-INF/lib下同样也包含这两个jar包,于是产生了冲突,解决方法也很简单,只要在布署完应用后,把WEB-INF/lib下的servlet-api.jar和jsp-api.jar删除就OK了,但是这样的话每次在热布署时都要手动做一次这样的操作会麻烦,在Google了很长一段时间后终于找到最终解决方案,只需在Eclipse里安装一个插件即可:

Maven Integration for WTP

下载地址:http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/

在Eclipse中用Install Software的方法下载此插件,需注意的是好像这个网址被GWF墙了,一直在calculating,可以在Eclipse中使用代理的方式来安装,一下就好了,关于Eclipse中使用代理请自行百度或Google搜寻之。

安装完后重启Eclipse,再重新布署,这时进入到布署目录的WEB-INF/lib下,会发现它没有把servlet-api.jar和jsp-api.jar包放上去了,运行项目也没有问题了,至此大功告成!

解决Eclipse maven servlet-api-2.5.jar jar not loaded问题的更多相关文章

  1. 解决Eclipse Maven插件的最佳方案

    最近在尝试使用GAE,要求项目必须使用Maven,于是下载了Maven3.1.1配置了环境变量.但是在为Eclipse EE安装Maven插件的时候遇到了问题. 官网的建议是: 在Eclipse EE ...

  2. 解决eclipse+MAVEN提示One or more constraints have not been satisfied.的问题

    应用版本:eclipse luna4.4.1 JDK:1.8 Maven:3.2.5 问题现象: 1.编译工程后总该是显示下面两个错误: One or more constraints have no ...

  3. 解决eclipse maven工程中src/main/resources目录下创建的文件夹所显示样式不是文件夹,而是"包"图标样式的问题

    参考:http://blog.csdn.net/luwei42768/article/details/72268246 eclipse项目中创建maven项目后,有时在执行命令maven update ...

  4. 转载---解决 eclipse 中发布的java-web工程,jar包无法发布到tomcat 的lib下。

    1.首先: Server Locations修改后会变灰,如果需要更改设置,则需要移除与Tomcat服务器关联的项目,同时,鼠标右键菜单Clean清除Tomcat服务器的状态^^就可以修改了. 此时E ...

  5. 解决eclipse maven install 造成JVM 内存溢出(java.lang.OutOfMemoryError: Java heap space)

    maven install 报错信息: The system is out of resources.Consult the following stack trace for details.jav ...

  6. eclipse maven项目如何将所有的jar包复制到lib目录下?

      1.情景展示 我们知道,maven项目的jar包并不存在于项目当中,项目所需的jar包都保存在本地仓库中,如果本地仓库没有,会从配置的中央仓库下载,如果中央仓库也没有就会报错: 如上图所示,我想将 ...

  7. eclipse maven项目导出所使用的jar包

    在eclipse中定位到maven项目的pom.xml文件右击pom.xml文件,选择Run As-->Maven build…在打开的页面中,GOLAS栏输入“dependency:copy- ...

  8. 解决eclipse maven 项目重新下载包这个问题

    问题:eclipse项目使用maven下载依赖包,但是有时候断网什么来着就不会自动下载了,挺蛋疼了. 所以,需要我们重新更新项目下载呢. 首先是要在maven的conf文件下setting.xml配置 ...

  9. 解决eclipse Maven 主项目不能刷新maven

    项目->.project -> 增加<?xml version="1.0" encoding="UTF-8"?><projectD ...

随机推荐

  1. 七牛云存储C#例用小例子 C#笔记

    最近有需求要把网站的图片传到云存储上去.于是就找到了七牛.看上面的SDK...看了才发现里面注释很少.当时看的头大.在网上搜一下,基本上没有好的例子.给初学者带来很大的不便!不过最后还是做出来了.在这 ...

  2. 分析Cocos2d-x横版ACT手游源 2、server场景

    仍然一样 直接在代码 资源 下一个 上传 你可以看到自己 NFServerChangeLayer.h </pre><pre name="code" class=& ...

  3. 前端开发——移动bug整理

    1.ios下jquery的delegate失效问题? 解决方案: $("body").delegate(...) 改为 $(".item").delegate( ...

  4. 使用Dropbox+Justwriting+Markdown建立个人博客

    使用Dropbox+Justwriting+Markdown建立个人博客,让您真正体会到什么是"简化". 您的博客所有日志存储在您的PC上.即使有一天你的server主机挂了,你的 ...

  5. [Elasticsearch] 集群工作 - 第二部分

    本文翻译自Elasticsearch官方指南的life inside a cluster一章. 添加故障转移(Failover)功能 仅仅执行一个节点意味着可能存在着单点失败(Single point ...

  6. HBuilder CSS 自定义代码块

    =begin 本文档是CSS代码块的编辑文件.注意不要把其他语言的设置放到css里来. HBuilder可使用ruby脚本来编辑代码块和增强操作命令. 1.编辑代码块 如果要新增一个代码块,复制如下一 ...

  7. [译]Java 设计模式之适配器

    (文章翻译自Java Design Pattern: Adapter) 适配器模式在现在的Java框架中被频繁的用到. 当你想去使用一个存在的类而且它的接口和你需要的不吻合,或者是你想去创建一个可复用 ...

  8. Visual Studio 2015 & C#6.0 试用报告,持续更新。

    昨天早上看到了.net开源的消息,我是非常兴奋的,毕竟局限于Windows的.NET经常被人唾弃.VB暂且不提,C#常年被人指责跨平台性不佳,我也是无能为力.即使有Mono等第三方跨平台工程,.NET ...

  9. Android项目---ActivityGroup的使用

    ActivityGroup在一年前已经被说明不用了,但是腾讯QQ,新浪微博上也不乏ActivityGroup的身影.所以,即使是过时的东西,也有学习的必要,当然项目中也是可以添加的.在网上找了一个博客 ...

  10. QTP DataTable全攻略(1)

    上一篇 / 下一篇  2009-07-27 00:14:16 / 个人分类:qtp 查看( 575 ) / 评论( 0 ) / 评分( 0 / 0 ) 下面的代码可能有点乱,基本涉及到常用的datat ...