我有以下测试课:
@ActiveProfiles({ "DataTC", "test" })
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {BaseTestConfiguration.class, DataTestConfiguration.class, JpaConfiguration.class, PropertyPlaceholderConfiguration.class })
public class RegularDayToTimeSlotsTest {
...
问题似乎来自BaseTestConfiguration类:
@Configuration
@ComponentScan(basePackages = { "com.bignibou" }, excludeFilters = { @Filter(type = FilterType.CUSTOM, value = RooRegexFilter.class),
@Filter(type = FilterType.ANNOTATION, value = Controller.class), @Filter(type = FilterType.ANNOTATION, value = ControllerAdvice.class) })
public class BaseTestConfiguration {
}
我系统地得到了这个异常:
Caused by: java.lang.IllegalArgumentException: A ServletContext is required to configure default servlet handling
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer.<init>(DefaultServletHandlerConfigurer.java:54)
at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.defaultServletHandlerMapping(WebMvcConfigurationSupport.java:329)
at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerByCGLIB$$bb4ceb44.CGLIB$defaultServletHandlerMapping$22(<generated>)
at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerByCGLIB$$bb4ceb44$$FastClassByCGLIB$$368bb5c1.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:326)
at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerByCGLIB$$bb4ceb44.defaultServletHandlerMapping(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
... 43 more
我不确定如何解决此问题。当我运行测试时,Spring不知何故正在寻找ServletContext并收到上述异常…
你的其中一门@Configuration
课程显然带有注释@EnableWebMvc
。这是如何DelegatingWebMvcConfiguration
结束在你的堆栈跟踪,因为它是进口的@EnableWebMvc
。
因此,尽管你认为自己不需要WebApplicationContext
(因此也不需要ServletContext
),但实际上确实需要它,只是因为你正在使用加载应用程序上下文@EnableWebMvc
。
你有两种选择:
@Configuration
带有注释的类@EnableWebMvc
)。@WebAppConfiguration
按照上面其他注释中的建议注释测试类。当我将messageSource方法重命名为messageSource2时,它可以工作,但我不太会使用自带默认messageSource的LocalizedMessageService来查询自定义消息。 如何将自定义消息基名称添加到默认消息源?
我试图使用Spring Boot与嵌入式。我希望嵌入式码头打开一个HTTPS端口443。
我正在将Spring MVC servlet 3.1应用程序移动到Spring Boot 1.3.0,当我将注释添加到我的一个Java配置类时,我在启动时出现异常(完整如下)。 我正在为我的Spring安全支持子类化
与Jquery Mobile自动初始化共同协作 Working with Jquery Mobile's Auto-initialization 不像其他的Jq项目,比如jq和jq ui,Jquery Mobile会在加载到增强特性时马上应用它(远早于document.ready事件发生时)。这些特性会基于Jquery Mobile的默认配置应用,是针对默认的情形设计的,他可能符合你的需求,也可能
上一小节讲到,DispatcherServlet维护了一个列表,其中保存了其所依赖的所有bean的默认实现。这个列表保存在包org.springframework.web.servlet下的DispatcherServlet.properties文件中。 这些特殊的bean都有一些基本的默认行为。或早或晚,你可能需要对它们提供的一些默认配置进行定制。比如说,通常你需要配置InternalResou
22.2.2 默认DispatcherServlet配置 如上一节中所述,对每种特殊的bean,DispatcherServlet都会维护一个默认可用的实现的列表。此信息保存在包org.springframework.web.servlet中的文件DispatcherServlet.properties中。 所有的特殊bean都有一些合理的默认值,虽然迟早您将需要对这些bean提供的一个或多个属性