大家好,我是烤鸭。

今天分享一个莫名其妙的异常及解决方式。

环境:

tomcat6

jdk 1.6

异常主体:

java.lang.IllegalStateException: Unable to locate the default servlet for serving static content. Please set the 'defaultServletName' property explicitly.

SEVERE: StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0': Initialization of bean failed; nested exception is java.lang.IllegalStateException: Unable to locate the default servlet for serving static content. Please set the 'defaultServletName' property explicitly.at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:706)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658)at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624)at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672)at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543)at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484)at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)at javax.servlet.GenericServlet.init(GenericServlet.java:212)at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)at org.apache.catalina.core.StandardService.start(StandardService.java:525)at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)at org.apache.catalina.startup.Catalina.start(Catalina.java:595)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IllegalStateException: Unable to locate the default servlet for serving static content. Please set the 'defaultServletName' property explicitly.at org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler.setServletContext(DefaultServletHttpRequestHandler.java:106)at org.springframework.web.context.support.ServletContextAwareProcessor.postProcessBeforeInitialization(ServletContextAwareProcessor.java:103)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:407)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1546)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)... 32 more
Mar 27, 2018 9:46:50 AM org.apache.catalina.core.StandardContext loadOnStartup

这是公司的一个旧项目,代码几年都没人动过。莫名奇妙就崩了。tomcat重启之后一直报这个错。

tomcat启动了,但是一访问还是报上面相同的错误。

百度也没有什么好的解决方式,毕竟项目几年没人动过,也不可能是项目的问题。

1.    试着清理tomcat/work下所有的东西,包括catalina等文件夹。

2.    检查web.xml和springmvc.xml

网上有的说添加静态映射servlet-name和servlet-mapping,url-pattern是/static/*。

在springmvc.xml的<mvc:default hander >添加指定servlet的name。

3.    以上的方式都试了,还是一样的错误。这时候就不要犹豫了。8成是tomcat的问题。

由于官网已经不提供tomcat6的下载,果断下了tomcat7,把tomcat6的server.xml复制过来,

webapps下的项目也复制一份。jdk从 1.6 升级到 1.7。这回没有上面的问题了。

4.    由于是旧项目, 我们都没有代码。可以把服务器上的webapps下的项目copy到本地tomcat的webapps

目录下,本地跑一下试试。如果本地没问题,那就是tomcat的问题,果断换tomcat。

5.    如果换了tomcat还是起不来,就考虑是服务器环境的问题,不排除软件或者硬件(硬盘)的问题。

解决问题的顺序是1——>5。

1不行,换2,以此类推。

因为百度的相关问题太少,就做个记录。不一定符合所有人的情况。

Unable to locate the default servlet for serving static content. Please set the 'defaultServletName'相关推荐

  1. springboot Serving Web Content with Spring MVC

    Serving Web Content with Spring MVC This guide walks you through the process of creating a "hel ...

  2. Unable to locate appropriate constructor on class

    在使用hql的时候,有时候查询的结果不需要所有字段只是部分字段,于是做如下修改. String hql = "select new TForm4Notice(id,title) from T ...

  3. Eclipse打开报错,The Eclipse executable launcher was unable to locate its companion shared library.

    Eclipse打开报错 The Eclipse executable launcher was unable to locate its companion shared library. 经常有小伙 ...

  4. we are unable to locate the App Tracking Transparency permission request when reviewed on iOS 15.0.2

    App Store审核被拒内容如下: Guideline 2.1 - Information Needed We're still looking forward to completing our ...

  5. Docker:Err http://archive.ubuntu.com trusty InRelease E: Unable to locate package [name] 问题

    参考: Docker containers can't resolve DNS on Ubuntu 14.04 Desktop Host Unable to locate package错误解决办法 ...

  6. Unable to locate Spring NamespaceHandler for XML schema namespace [http://cxf.apache.org/jaxws]

    利用cxf调试webservice接口的时候出现下面的错误 error:Unable to locate Spring NamespaceHandler for XML schema namespac ...

  7. Ubuntu E: Unable to locate package错误解决办法

    Ubuntu 16.04 64位 安装软件时报错: Unable to locate package:无法找到包. 解决办法: 执行命令:sudo apt-get update 再安装自己的软件就ok ...

  8. ubuntu14.04.5装cuda7.5记录(解决unable to locate the kernel source,装cuda黑屏问题,装cuda循环登录问题)

    ubuntu14.04.5装cuda7.5记录(解决unable to locate the kernel source,装cuda黑屏问题,装cuda循环登录问题) 参考文章: (1)ubuntu1 ...

  9. Maven Unable to locate the Javac Compiler

    参考:http://my.oschina.net/jiaozg/blog/90501 问题 BUILD FAILURE [INFO] --------------------------------- ...

最新文章

  1. js 定时任务,定时器
  2. java hdfs创建文件_使用HDFS java api 创建文件出错。
  3. LeetCode Linked List Cycle II(floyd cycle)
  4. git多人协作冲突解决方法
  5. php学习笔记之static的问题
  6. 高项的项目管理ITTO(PMP第五版)
  7. mariadb mysql 语法_Mariadb MySQL、Mariadb中GROUP_CONCAT函数使用介绍
  8. 【C#】VS2012+InstallShield2013制作软件更新包
  9. VS的包含目录、库目录、引用目录、可执行目录解释
  10. POSIX互斥锁api函数
  11. 推陈出新:网友解锁 source 命令新的姿势,血的教训!已准备跑路
  12. 你不知道的思维导图能做的事
  13. Java实现阶乘的计算(四种方法)
  14. Date类与DateFormat类
  15. matlab外推法确定搜索区间的程序,《机械优化设计》复习题
  16. 华为鸿蒙dba,人生中最重要的决策|读在职博士DBA
  17. javaweb,img问题scr路径
  18. 【SIMULINK】simulink实现信号矩阵整合、求逆、转置、分解、向量矩阵相乘(非matlab)
  19. Materia切换动画
  20. 【python】回归评价指标体系

热门文章

  1. [css] 请使用css3来模拟中/英文打字的效果
  2. [css] 说说sroll-snap-type属性的运用场景有哪些?相关联的属性还有哪些?
  3. 前端学习(2443):反馈
  4. “约见”面试官系列之常见面试题之第六十八篇之本地对象 内置对象 宿主对象(建议收藏)
  5. 前端学习(556):margin与容器的尺寸
  6. 前端学习(528):等分布局存在间距得问题
  7. java面试题31:结构型模式中最体现扩展性的模式是()
  8. 课外阅读(通讯技术的发展史)
  9. 计算机操作系统(8):进程的控制
  10. Oracle数据库配置监听的作用