java.lang.NoSuchMethodError: javaxservlet.http.HttpServletRequest.isAsyncStarted()Z

鸣谢网址:http://stackoverflow.com/questions/25940571/java-lang-nosuchmethoderror-javaxservlet-http-httpservletrequest-isasyncstarted/

---------------------------------------------------------------------------------------------------------------------------------------

情景:在做springMCV测试时出现该问题——执行simple方法

package com.springapp.mvc;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.web.context.WebApplicationContext;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration("file:src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml")
public class AppTests {
    private MockMvc mockMvc;

    @SuppressWarnings("SpringJavaAutowiringInspection")
    @Autowired
    protected WebApplicationContext wac;

    @Before
    public void setup() {
        this.mockMvc = webAppContextSetup(this.wac).build();
    }

    @Test
    public void simple() throws Exception {
        mockMvc.perform(post("/mytest"))
                .andExpect(view().name("hello"))
                .andDo(print()).andExpect(status().isOk());
    }
 

}

 

在此页面的网友也遇到笔者相同的问题,网友Sam Brannen的回答解决了此问题,下面贴出来:

蓝色框框中的内容即是此问题出现的原因及解决方法——原来Spring 4.0的版本中的org.springframework.mock.web包所需的servlet-api 的版本最低是3.0

解决过程:

1.下载servlet-api的3.0版本,下载地址:http://download.csdn.net/download/wangdongj2ee/4260894

2.按照我的博客http://www.cnblogs.com/wql025/p/4996484.html中的解决方法将下载的jar移至maven的本地仓库中。

pom.xml中的依赖代码如下:

<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>3.0</version>
        </dependency>

 

后记:茫茫人海,感谢网友在网络上的分享的智慧源泉。感谢!

 

posted @ 2015-12-05 21:10  Tom1997  阅读(2594)  评论(0编辑  收藏  举报