无法找到用于提供静态内容的默认servlet。请显式设置“defaultServletName”属性。

3

我正在尝试将一个最初为WAR部署在Tomcat中并使用较旧的Spring Boot版本的项目作为独立运行的Spring Boot项目运行。

我已经编写了启动应用程序的主类,并且可以看到它正在执行原始应用程序完成的所有启动活动,但是我被下面的错误卡住了,这个错误是在非常后面抛出的:

org.springframework.beans.factory.BeanCreationException: 创建名为'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'的bean时出错:初始化bean失败;嵌套异常是java.lang.IllegalStateException:无法找到用于提供静态内容的默认servlet。请显式设置'defaultServletName'属性。 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)〜[spring-beans-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)〜[spring-beans-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)〜[spring-beans-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)〜[spring-beans-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)〜[spring-beans-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)〜[spring-beans-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)〜[spring-beans-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)〜[spring-context-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)〜[spring-context-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)〜[spring-boot-1.3.5.RELEASE.jar!/:1.3.5.RELEASE] 在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)〜[spring-boot-1.3.5.RELEASE.jar!/:1.3.5.RELEASE] 在org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)〜[spring-boot-1.3.5.RELEASE.jar!/:1.3.5.RELEASE] 在org.springframework.boot.SpringApplication.run(SpringApplication.java:307)〜[spring-boot-1.3.5.RELEASE.jar!/:1.3.5.RELEASE] 在com.app.def.run.Application.main(Application.java:72)〜[classes!/:?] 在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[?:1.8.0_144] 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[?:1.8.0_144] 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[?:1.8.0_144] 在java.lang.reflect.Method.invoke(Method.java:498)〜[?:1.8.0_144] 在org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)〜[APP.jar:?] 在org.springframework.boot.loader.Launcher.launch(Launcher.java:87)〜[APP.jar:?] 在org.springframework.boot.loader.Launcher.launch(Launcher.java:50)〜[APP.jar:?] 在org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)〜[APP.jar:?] Caused by: java.lang.IllegalStateException:无法找到用于提供静态内容的默认servlet。请显式设置'defaultServletName'属性。 在org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler.setServletContext(DefaultServletHttpRequestHandler.java:106)〜[spring-webmvc-4.2.5.RELEASE.jar!/:4.2.5.RELEASE] 在org.springframework.web.context.support.ServletContextAwareProcessor.postProcessBeforeInitialization(ServletContextAwareProcessor.java:103)〜[spring-web-4.2.5.RELEASE.jar!/
非常感谢您的来信。如果您能提供更多详细信息,我们将非常感激。
1个回答

0

4
使用Java类,您可以通过覆盖WebMvcConfigurerAdapter类的方法注册默认servlet。@Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable("myCustomDefaultServlet"); } - vishal lakhyani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接