abcbuzhiming 2013-05-17 11:51 采纳率: 0%
浏览 245
已采纳

eclipse项目发布到tomcat后,自带的库和tomcat的库发生冲突

eclipse写的web项目,自带servlet-api.jar和jsp-api.jar,发布到tomcat后首先是警告servlet-api.jar没有加载,其次就是出错
“SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException”

搜索后发现tomcat的lib目录自带servlet-api.jar和jsp-api.jar包,而且会优先加载,导致出现提示servlet-api.jar没有加载,而且不能正常显示jsp页面,方法就是从项目里删除这两个包,但是删除后用到servlet的源码会被eclipse提示有错。有什么办法能让tomcat启动时优先加载项目自己的包,而且不要重复加载已经加载过的包?

  • 写回答

6条回答 默认 最新

  • h248980496 2013-05-17 15:04
    关注

    项目中的jar删除或者设置buildpath不引用,然后buildpath中添加libray引用,可以引用server run time的library,指定为tomcat,就可以避免servlet-api以及jsp-api两个jar包的冲突了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • yannischen 2013-05-17 13:01
    关注

    你可以将jar放置在项目中,这样项目中就没有报编译错误了。在将jar发布的时候不要发布这两个jar就可以了。这样就可以实现,既不报错,也能在tomcat中正常使用。

    评论
  • ddlgyqddlgyq 2013-05-17 13:49
    关注

    楼主用maven了吗,maven的话,你的项目依赖servlet-api.jar和jsp-api.jar这2个依赖,但是你的部署环境已经提供了,那么这两个依赖的scope设置为provided即可。或者手动把tomcat的lib下的那2个包,替换成你的那2个包

    评论
  • xiaoran1392010 2013-05-17 15:10
    关注

    1、把eclipse和tomcat改成同意的jdk
    2、最好用eclipse自带的servers引入tomcat来发布,或者使用tomcat插件
    3、你那样的问题是配置错误,你在研究下吧。只要用一个相同的版本的tomcat就行

    评论
  • weixin_42671644 2013-05-17 15:12
    关注

    context.xml中增加[code="java"][/code]

    评论
  • fishergay 2013-05-20 09:18
    关注

    我之前做也遇到了些问题, 我这个方法可以。

    可以在eclipse当中添加一个User Library(Window-->Preferences-->Java-->Build Path --> User library) 把jsp-api.jar和servlet-aip.jar 两个jar文件加入进去,一定要把下面system library 打钩,
    然后在项目引入这个library编译, 这样再部署的时候就不会把这2个jar文件部署到tomcat了

    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 activity升级到flowable工作流act_ge_bytearray的草稿json数据复制到act_de_model 的model_editor_json的脚本
  • ¥15 cvi使用CreateThread创建线程时,出现存储空间不足无法处理此命令的错误
  • ¥15 求苹果推信imessage批量推信技术
  • ¥15 ubuntu 22.04 系统盘空间不足。隐藏的docker空间占用?(相关搜索:移动硬盘|管理系统)
  • ¥15 利用加权最小二乘法求亚马逊各类商品的价格指标?怎么求?
  • ¥15 c++ word自动化,为什么可用接口是空的?
  • ¥15 Matlab计算100000*100000的矩阵运算问题:
  • ¥50 VB6.0如何识别粘连的不规则的数字图片验证码
  • ¥16 需要完整的这份订单所有的代码,可以加钱
  • ¥30 写一个带界面控制的机房电脑一键开机关机并且实时监控的软件