获取ServletContext的上下文路径。

5
我查看了我在Netbeans项目中包含的Tomcat库的javadocs,当我部署代码时,代码可以正常运行,但是当我对Web项目进行清理和构建时,ServletContext接口的getContextPath()方法出现“找不到符号”的错误。
这让我完全疯狂,因为为了运行我的测试等,我必须先部署,然后测试。如果我进行清理和构建,或者清理和运行测试,我会遇到这个错误...
有人知道是什么原因导致了这个问题吗?是否需要更新某个库?
1个回答

7

我怀疑你所使用的ServletContext版本可能不包含该方法,但是在你部署的版本中有该方法。根据2.5版文档,该方法是在2.5版本中引入的。所以基本上只需要将你正在构建的servlet.jar更改为2.5版本即可解决问题,保留原有的html标签。


为此,您需要Tomcat 6.x以支持Servlet 2.5。 - Powerlord
是的,在部署时它是可以工作的,但在构建时却不行...这没有道理...如果不能构建,它怎么能够部署呢?!无论如何,你是对的,我在另一个项目中有一个不同的servlet.jar被包含了进来...为什么这里有人需要在一个纯Java非Web项目中包含servlet.jar...我不知道。 - walnutmon
如果无法构建,它如何部署?您的构建类路径可能与部署类路径不同。特别是类路径中的项目顺序可能不同。 - DaBlick
1
如果您使用GGTS,可能会通过GROOVY_LIBRARIES容器意外获取较旧版本的Servlet API;这将导致一个奇怪的错误,在其中一些单元测试在maven中执行良好,但在GGTS内部执行时会抱怨缺少getServletContext方法。我花了两个小时才弄清楚,希望这能帮助到某些人! - Riccardo Cossu
在移除了Groovy库之后,帮助我解决了所有问题。 - Mateen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接