java.lang.NoSuchMethodError: javax.servlet.ServletContext.getEffectiveSessionTrackingModes()

在将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项目依赖。

最近在把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]

搜了一下,下面这篇文章讲得比较仔细,果断分享之

http://stackoverflow.com/questions/8969497/java-lang-nosuchmethoderror-javax-servlet-servletcontext-geteffectivesessiont


贴出内容:

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:

  1. Your web.xml is not declared conform at least Servlet 3.0.

  2. Your servlet container does not support at least Servlet 3.0.

  3. You have servlet container specific libraries of an older version in /WEB-INF/lib.

To solve this problem,

  1. Ensure that your web.xml root 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>
    
  2. 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.

  3. 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.


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值