IDEA启动遇到报错log:org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败

2021-10-14

14-Oct-2021 14:36:56.789 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
14-Oct-2021 14:36:57.393 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
14-Oct-2021 14:37:41.396 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart 异常将上下文初始化事件发送到类的侦听器实例.[com.mdiaf.listener.PasApplicationListener]
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'selfTestNotificationCommand': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.fc.kcm.api.self_Test_Service.service.SelfTestNotificationService com.fc.kcm.notification.controller.SelfTestNotificationCommand.selfTestNotificationService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.fc.kcm.api.self_Test_Service.service.SelfTestNotificationService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

此次问题的原因被找到:

出错发生在下图所示的代码 红色标记 部分:

 接口“SelfTestNotificationService”上加了“Autowired”注解,而其实现类“SelfTestNotificationServiceImpl”并未加“@Service”注解,

 所以在加载过程中,“SelfTestNotationServiceImpl”没有被加载进来,出现以下报错

“一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件”。

 加上后问题解决。

18-Aug-2021 19:58:25.494 严重 [RMI TCP Connection(3)-127.0.0.1]

问题描述:该项目为导入项目,在导入后经过调试可正常运行,在git拉分支之后  或者 将war包复制到Tomcat webapps下手动启动Tomcat后在IDEA中build启动遇到以下报错,log:

org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
18-Aug-2021 19:58:25.495 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/XXX_XXX_web_war_exploded]启动失败
[2021-08-18 07:58:25,568] Artifact XXXX:war exploded: Error during artifact deployment. See server log for details. 

 这个问题困扰了我很长时间也没解决,在网上找了很多方法,看了很多文章,也没有明白问题的根源是什么,但是找到了问题的解决办法。

以下摘抄了部分解释:

在网上找到的解释为:项目部署运行环境下,项目依赖的jar包没有导入到项目部署的环境中,说白话就是部署环境中缺少jar包

网上所给解决方案:把缺少的jar包导入即可,WEB-INF目录下新建lib文件夹,右键选择Add copy of-->Library File,将项目所有需要的依赖添加即可

我的解决方法如下:

最终追踪到以下目录D:\XXX_Project\项目名\含有target的文件名\target\项目名\WEB-INF

删掉文件夹WEB-INF”,重新启动IDEA,问题就解决了,之后在拉分支也没有遇到这样的问题。(注:重新启动项目后,被删掉的文件都还会自动生成,对项目无影响。)

下图为WEB-INF目录下的文件,通过目录可看出,出问题的根源应该在时间最近发生变化的文件夹中(因为这些文件夹更新过后问题解决了)。

删掉“WEB-INF”文件夹,再重新启动,项目能正常运行,这也可以印证,部署环境缺少jar包这个原因。

IDEA会重新编译项目,加载新的jar包,部署到“WEB-INF”文件夹下,这样就解决了缺少jar包的问题。

后续:

昨天(2021-09-08)在Git拉过项目后又出现了该报错提示,同时查看了详细的Tomcatlog记录,按照上文所写的步骤操作了一遍(删掉文件夹WEB-INF”,重新启动IDEA),并没有解决问题

然后有查看了一下Tomcat的log:No qualifying bean of type [controller.] is defined(当时没有照抄完整log记录)

Injection of autowired dependencies failed; nested exception is org.springfr

但是问题的原因很明显,是因为缺少依赖,本地没有包,bean创建失败等原因造成的。

最后,重新拉了Git,更新了maven,然后重新创建部署,就解决了问题

这次错误的出现让我对这个异常有了更深的理解: 缺包,解决包问题,一般就能解决问题。

可能有很多原因会造成缺包,导致这样的问题出现。关键是想办法解决这些导致缺包的问题。

首先应该停掉Tomcat,再重启。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值