最近在把jboss从4.2.2升级到6.0.0时候,遇到各种各样的问题,主要都是类版本冲突,好容易把问题都找出来服务器run起来之前,第一次访问抛出了这个异常
An exception or error occurred in the container during the request processing: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getEffectiveSessionTrackingModes()Ljava/util/Set;
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:567)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
at java.lang.Thread.run(Thread.java:679) [:1.6.0_22]
搜了一下,下面这篇文章讲得比较仔细,果断分享之
贴出内容:
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getEffectiveSessionTrackingModes()Ljava/util/Set;
This method is introduced in Servlet 3.0. This error can have at least the following causes:
-
Your
web.xmlis not declared conform at least Servlet 3.0. -
Your servlet container does not support at least Servlet 3.0.
-
You have servlet container specific libraries of an older version in
/WEB-INF/lib.
To solve this problem,
-
Ensure that your
web.xmlroot declaration conforms Servlet 3.0:<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <!-- Config here. --> </web-app> -
Ensure that you're deploying to a Servlet 3.0 compatible container. In case of JBoss AS that would be at least version 6.0.0.
-
Ensure that you don't have those libraries in
/WEB-INF/lib. They do not belong there. This is a common beginner's mistake to "solve" compilation errors they faced in their IDE. See also How do I import the javax.servlet API in my Eclipse project?
You've declared your web.xml conform Servlet 2.2. This is definitely wrong. Fix it accordingly.
在将JBoss从4.2.2升级到6.0.0过程中,遇到了java.lang.NoSuchMethodError: javax.servlet.ServletContext.getEffectiveSessionTrackingModes()异常。该错误通常由于Servlet版本不兼容、容器不支持Servlet 3.0或库冲突引起。解决方案包括确保web.xml符合Servlet 3.0规范、使用Servlet 3.0兼容的容器、清理lib目录中的旧版容器特定库以及正确配置IDE项目依赖。
1196

被折叠的 条评论
为什么被折叠?



