java.lang.NoSuchMethodError:javax.servlet.ServletContext.getServletRegistrations()Ljava / util / Map;

时间:2011-11-27 13:52:30

标签: servlets jsf-2

我按照BalusC在JSF 2.0 File upload的回答中的步骤进行了操作。我采用不同的唯一步骤是答案中的Tomahawk上传链接。链接坏了,所以我从另一个地方得到了tomahawk-1.1.11。当我尝试从Eclipse启动Tomcat 7.0.14时,我收到以下错误:

java.lang.NoSuchMethodError: 
javax.servlet.ServletContext.getServletRegistrations()Ljava/util/Map;

Tomcat没有启动。有任何想法吗?此外,该链接的答案是从三月。在JSF 2中使用文件上传的任何开发?

1 个答案:

答案 0 :(得分:0)

您的网站项目的/WEB-INF/lib混杂了不同品牌/版本的容器的servletcontainer特定库,例如servlet-api.jarjavaee.jar等。摆脱它们。

Servlet 3.0中引入了

The mentioned method,这个错误表明你的/WEB-INF/lib中有一个或更早的Servlet 2.5容器库。如果你已经将它们包含在javax.servlet.*导入中绕过Eclipse的编译错误,那么你应该以不同的方式解决它。也就是说,通过将您实际要使用的servletcontainer(在您的情况下是Tomcat 7)集成为Eclipse中的目标运行时并将项目与它相关联。

请注意,此问题与JSF 2.0无关。您有一个异常指向javax.servlet包的方法,而不是javax.faces包。

另见: