HttpServletRequest.getServletContext()一直提示找不到,而引出的问题
开发j2ee项目的时候,需要用到servlet-api,如果使用了maven,web项目可以在pom.xml中手动加入所需jar包,达到与依赖j2ee libarary同样的功能。可问题来了:
1. 问题描述
最近使用myeclipse10.7用maven开发一个web项目,就遇到了这样一个问题:
由于项目的servlet类中使用了servlet-api-3.0相应的方法,即HttpServletRequest类的一个getServletContext()方法,
为了使编译通过,可在build path中添加j2ee6 libarary,或者pom.xml中引入servlet-api-3.0.jar,但虽然通过这2种方法引入使编译成功后,
运行时,servlet中仍然报找不到getServletContext()方法的错误。
2. 分析结果
追查问题后,分析可能的原因是,如果使用的是tomcat6服务器,由于tomcat6安装目录下自带的是servlet-api-2.5.jar,不支持servlet-3.0,
由此进行猜测,web应用在tomcat中运行时,运行时与编译时是不一样的。
编译使用的项目build path引入的jar包进行编译,编译完成后,运行时,tomcat应该是使用了其自带的j2ee jar包来运行web应用的,我们项目build path中引入的j2ee 相关jar包,在tomcat容器运行web项目时,已经不起作用了!
3. 待解决的问题
问题来了,有没有一种方法,使得web项目在tomcat容器中运行时,能够优先使用我们指定的jar包呢?正在百度当中。
4. 分析结果纠正
即使把servlet-api-3.0jar包替换掉tomcat6的lib目录下的servlet-api.jar包,也并不能解决问题,说明了并不是web项目运行时优先加载tomcat自带jar这种原因,而是tomcat6不支持servlet-api-3.0,使用tomcat7后,问题解决了,也说明了这个问题。
注意,如果反过来把servlet-api-2.5替换掉tomcat7目录下的servlet-api包,则容器直接无法成功启动了。
HttpServletRequest.getServletContext()一直提示找不到,而引出的问题的更多相关文章
- 如何解决找不到方法HttpServletRequest.getServletContext() ---- NoSuchMethodError
报错 java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()Ljavax/serv ...
- win10用户文件夹重命名,启用administrator账户,删除文件夹时提示找不到该项目
这一切都源自楼主洁癖一般的强迫症. 楼主在重置win10后的安装过程中用microsoft账户登录的电脑,发现用户文件夹名称怪怪的,于是想重命名一下.楼主发现重命名用户文件夹并不能简单地用F2搞定,于 ...
- javac编译不同目录的源码提示找不到符号
对于单个文件的且不引用其他类文件的java源码用javac编译大家都很熟悉即 javac mycode.java 但是如果这个文件引用到了其他的类文件,在进行编译的时候就会提示找不到符号,这时我们需要 ...
- python安装完毕后,提示找不到ssl模块的解决步骤
转载自 醇酒醉影 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, ...
- 用C#调用C++DLL(x64),总是提示找不到DLL
用C#调用自己写的C++ DLL(x64),总是提示找不到DLL,调试可以,发布release老是提示找不到DLL(dll文件确定存在) 原因:Visual C++的DLL分发方式没选:调试默认选择: ...
- [综合]visio2013安装提示找不到Office.zh_cn\officeMUI.mis officemui.xml
在visio2013安装提示找不到Office.zh_cn\officeMUI.mis officemui.xml 等等,各种提示,可是打开安装程序所在的ISO,里面可是“赶集网”——啥都有啊.上网查 ...
- iis里面浏览网页,提示找不到应用程序的解决办法
iis配置成功,数据库链接正确,代码无误,在iis里面,浏览某网页,提示找不到应用程序,这时一下子懵了. 处理办法:在浏览器中直接输入网址,例如:http://192.168.1.111,这时能够打开 ...
- Visual Studio 编译项目失败,提示找不到文件
博客地址:http://blog.csdn.net/FoxDave 今天碰到了一个蠢问题,虽然咱们正常情况下是遇不到的,但这确实是个应该注意的地方,所以简单记录一下. Visual Studio ...
- 转载:mysql ODBC 在64位下提示找不到odbc驱动问题
在64位机器上,如果你想要连接32位mysql ,一般会安装mysql connector/ODBC 64位,并在配置ODBC数据源测试中连接正常,但在程序连接,如ASP.asp.net.VB.Del ...
随机推荐
- QQ登录界面
@property (nonatomic,assign) IBOutlet UITextField *qq; @property (nonatomic,assign) IBOutlet UITextF ...
- vs当前不会命中断点,还没有为该文档加载任何符号
今天发布网站之后,附加进程却怎么页不能命中断点,后来发现原来,我将发布的web.config文件覆盖掉了新生成的配置文件,其中一项:<compilation debug="false& ...
- python 邮件报警
为了以后方便使用邮件报警 我这边直接写入一推报警模板 方便以后使用 加入模块 import smtplib from email.mime.text import MIMEText from emai ...
- eclipse配置tomcat及修改tomcat默认根目录
1.安装eclipse for j2ee和tomcat: 2.下载tomcat对eclipse的插件:http://www.eclipsetotale.com/tomcatPlugin.html 下载 ...
- 这几个linux 命令
原文: linux性能分析 http://www.cnblogs.com/peida/tag/linux%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/ du -sh /da ...
- JSTL标签库---SUN公司开发的标签库
JSTL里的标签包含五大类标签: 核心标签库 国际化标签 JSTL函数(EL函数) 数据库标签// 操作数据库的,用不到了 XML标签//操作XML的,用不到了 都在jstl.jar,standar. ...
- postgresql 在linux上的源码安装
http://my.oschina.net/hippora/blog/375292 下载源码并解压 [root@fnddb ~]# wget https://ftp.postgresql.org/pu ...
- HDU2216:Game III(BFS)
Game III Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Subm ...
- FZU 2091 播放器(栈应用)
栈基础应用 #include<iostream> #include<cstdio> #include<cstring> #include<vector> ...
- Mysql limit性能优化(小offset与大offset)
MySQL的优化是非常重要的.其他最常用也最需要优化的就是limit.MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降. 同样是取10条数据 selec ...