启动报错:spring No Spring WebApplicationInitializer types detected on classpath

我通过maven插件把项目送过去后,马上就说**war has finished in 1,618 ms,打开浏览器登录找不到404。

看日志打开catalina.2017-01-08.log,发现报错【spring No Spring WebApplicationInitializer types detected on classpath 】

就是说“Spring在类路径上没有检测到WebApplicationInitializer types ”,应该就是初始化类型的错误。

网上找了半说:从3.1.0开始在加载前就会先扫描,查找WebApplicationInitializer实现类。可以通过配置关闭这个功能:
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"    metadata-complete="true">

但是,,,,,,我用的是2.5,so...........
----------------------------------------------------------------------------------------------------------------------------------------

 metadata-complete="true":web.xml文件中使用<metadata-complete元素通知Web容器是否要寻找注解,如果你将<metadata-complete设为false,或者在文件中不指定<metadata-complete元素,那么在部署期间,容器必须扫描注解和Web分片,为Web应用程序构建有效的元数据。如果将<metadata-complete设为true,将由部署描述符为Web应用程序提供所有的配置信息。


然后取google了下,说spring mvc .xml文件找不到。我试着把web.xml文件的springmvc.xml中文件加了个s

<init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:sspringmvc.xml</param-value>
</init-param>
结果报错说找不到
classpath:sspringmvc.xml

就是说其实文件是加载到了的。

加载到了就是springmvc本身初始化的问题了

可能是扫描不到。我于是又去掉了

<context:component-scan />
试了找不到。然后加上还是找不到。

没法,spring mvc 本身也没问题。

最后查代码.继续找bug ,在log中发现 No default constructor found; nested exception is java.lang.NoSuchMethodException: online.**.**.entity.Blogger.<init>()] with root cause


原因出来了吧!!!!!!!!!!! 没有加空的构造函数。

我写了个有参构造函数。所以。。。。。。

因为在spring mvc 传递的对象参数必须要有无参构造函数,

如果显示定义了有参数的构造函数,必须现实定义一个无参构造函数,否则参数无法绑定;如果没有显示定义了有参数的构造函数,依据开发规范应该必须定义一个无参构造函数


解决:加一个空的构造函数,或则去掉有参构造函数







评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值