3 回答

TA贡献1155条经验 获得超0个赞
当你包括在不同的服务器品牌/版服务器专用库,会发生/WEB-INF/lib
你的web应用,如jsp-api.jar
,el-api.jar
,servlet-api.jar
,等你需要删除它们。该/WEB-INF/lib
不应包含任何特定于服务器的库。它们属于特定的服务器本身(Tomcat已将其放在其/lib
文件夹中)。
顺便说一句,这是每当初学者在IDE项目中的JSP / Servlet API上遇到编译错误时,都会犯的错误。应该以不同的方式解决此问题,即通过将服务器集成到IDE中并将服务器作为“目标运行时”添加到项目中。

TA贡献1852条经验 获得超7个赞
我被这个错误困扰了很长时间,这个线程节省了我很多时间。在解决此问题之前,我做了一些研究。是的,我们需要jsp-api.jar, el-api.jar, servlet-api.jar从/WEB-INF/lib文件夹中删除类似的库。但是如何?
就我而言,我使用Apache Ivy作为依赖项管理器,并使用Spring MVC。它将下载所有依赖项以及上述库。在运行时,这些与Tomcat库提供的API冲突。一种简单的解决方案是从依赖项中排除这些jar或创建配置,并将这些库仅包括在编译时配置中。快速为我工作的是排除这些库。
<dependency org="org.springframework" name="spring-webmvc"
rev="4.0.4.RELEASE">
<exclude org="javax.servlet" name="javax.servlet-api" />
<exclude org="javax.servlet.jsp" name="jsp-api" />
<exclude org="javax.el" name="javax.el-api" />
</dependency>
添加回答
举报