ClassCastException:GenericApplicationContext无法强制转换为org.springframework.web.context.WebApplicationContext

时间:2019-06-13 06:42:39

标签: spring spring-boot

这是一个春季启动项目,它使用XML来创建bean。现在,我正在编写测试用例,并在执行相同操作的同时,在创建特定bean时面对类强制转换

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest()
@TestPropertySource("classpath:application.properties")
@WebAppConfiguration
@ContextConfiguration(loader=AnnotationConfigContextLoader.class)
public class ApplicationTests {

     private MockMvc mockMvc;

        @Autowired
        private WebApplicationContext wac;

        @Before
        public void setUp() {
            mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
        }

<bean id="springUtility"
        class="com.endeca.infront.web.spring.SpringUtility" scope="singleton" />````

Above is the bean 

Error : Caused by: java.lang.ClassCastException: org.springframework.context.support.GenericApplicationContext cannot be cast to org.springframework.web.context.WebApplicationContext

1 个答案:

答案 0 :(得分:0)

您可以直接注入MockMvc并省略一些配置,因为它是默认设置。

所以您的测试课程将如下所示:

@SpringBootTest
@RunWith(SpringRunner.class)
public class ApplicationTests {

     @Autowired
     private MockMvc mockMvc;

     // Add your tests

}

如果需要加载配置,则@ImportResource是首选方式。只需将其放在@SpringBootApplication或@Configuration类上即可。

@ImportResource({"classpath*:applicationContext.xml"})