SpringBoot项目报错解决:“Error starting ApplicationContext. To display the conditions report re-run ...”
SpringBoot项目报错:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.以下方案80%可以帮助您解决这些个‘可恶的’问题报错内容和截图如下:Connected to the target VM, address: '
SpringBoot项目报错:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
以下方案80%可以帮助您解决这些个‘可恶的’问题
目录
一、编译出问题 |
---|
二、代码格式导致的编译出问题 |
三、请求接口重复 |
四、加@Mapper |
五、加@SpringBootApplication注解,数据库问题 |
六、端口重复问题 |
七、包冲突 |
八、springboot 数据源配置出错 |
报错内容和截图如下:
Connected to the target VM, address: '127.0.0.1:4963', transport: 'socket'
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.3.10.RELEASE)
2021-12-25 14:52:41.578 INFO 13204 --- [ main] m.c.DiitMicrosoftserviceCheckApplication : Starting DiitMicrosoftserviceCheckApplication on 老云的计算机 with PID 13204 (D:\svn\workspace_nxzrbhdzt\Gh_yizhangtu\dit-check\target\classes started by liuyundashen in D:\svn\workspace_nxzrbhdzt\Gh_yizhangtu\dit-check)
2021-12-25 14:52:41.583 INFO 13204 --- [ main] m.c.DiitMicrosoftserviceCheckApplication : No active profile set, falling back to default profiles: default
2021-12-25 14:52:43.485 INFO 13204 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2021-12-25 14:52:43.503 INFO 13204 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-12-25 14:52:43.504 INFO 13204 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.45]
2021-12-25 14:52:43.668 INFO 13204 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2021-12-25 14:52:43.668 INFO 13204 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1979 ms
2021-12-25 14:52:43.832 INFO 13204 --- [ main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
2021-12-25 14:52:43.910 ERROR 13204 --- [ main] com.alibaba.druid.pool.DruidDataSource : testWhileIdle is true, validationQuery not set
2021-12-25 14:52:43.917 INFO 13204 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
_ _ |_ _ _|_. ___ _ | _
| | |\/|_)(_| | |_\ |_)||_|_\
/ |
3.2.0
2021-12-25 14:52:44.365 WARN 13204 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cheakRecordController': Unsatisfied dependency expressed through field 'recordService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'TRecordServiceImpl': Unsatisfied dependency expressed through field 'packageService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resultPackageBaseinfoServiceImpl': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'importDB.datasource.url' in value "${importDB.datasource.url}"
2021-12-25 14:52:44.366 INFO 13204 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closing ...
2021-12-25 14:52:44.368 INFO 13204 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed
2021-12-25 14:52:44.372 INFO 13204 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2021-12-25 14:52:44.391 INFO 13204 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-12-25 14:52:44.410 ERROR 13204 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cheakRecordController': Unsatisfied dependency expressed through field 'recordService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'TRecordServiceImpl': Unsatisfied dependency expressed through field 'packageService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resultPackageBaseinfoServiceImpl': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'importDB.datasource.url' in value "${importDB.datasource.url}"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1425) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) ~[spring-beans-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) ~[spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) ~[spring-context-5.2.14.RELEASE.jar:5.2.14.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.10.RELEASE.jar:2.3.10.RELEASE]
——在看到这些个问题的时候,日志基本都会告诉你错误的地方,所以我们大部分可以根据日志报错的信息分析错误的原因:
一、编译出问题
仔细看报出的问题,有没有如:“Description:…” 这样的字眼,没有 “描述”,如上图所示,这种情况下的操作:
1.clean清理一下; 2.然后install重新编译一下 ;
3.也可以用这个命令,重新编译一下
这个时候重新启动,如果还是报同样的错误,打开如下图位置,看是否有编译的文件,如mapper.xml文件,application.yml或
者application.properties文件,以及一些配置文件等
——哎!生气,这里发现真的没有mapper和配置文件,只有main下面的.jar文件,该怎么办呢?
——pom.xml文件中给加入要编译的文件位置依赖,如下:(这是我的文件位置,你根据你的进行调整)
<!--引入本地资源-->
<resources>
<!--加载lib文件,特殊情况下会有lib,但大部分都靠依赖下载了-->
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<!--打jar包-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<!--将properties和xml文件编译-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
好的,清理——>打包——>启动——>运行成功,搞定收工
二、代码格式导致得编译出问题
查看日志也是没有 “Description:…” 的内容描述,这个时候查看日志异常描述最后的内容说明,比如:
举例一:
异常说:“元素内容必须由格式正确的字符数据或标记组成”;这个时候认真检查刚才自己写下的代码,检查到Mapper.xml中有格式问题
查看:确实内容中提示错误,小于号不能直接用“<” ,而是要用“& lt;(<)或者 & gt;(>)”
举例二:NoClassDefFoundError
异常说:java.lang.NoClassDefFoundError,这种情况下应该是 org.mybatis.spring.boot 包冲突或者 org.mybatis.spring.boot 版本太低不匹配了;注释或者修改版本即可
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
修改后——启动——成功
三、请求接口重复
根据日志看出它说路径问题;这样想你写的接口名字是否重复,只有一个斜杠或者没斜杠的情况
如下截图:
修改如下:
好的,重新启动,搞定收工
四、加@Mapper注解
这些情况就是看描述的问题
如图:
这种情况,看是不是没有扫描到它需要的东西,给加上@Mapper注解(是扫描dao层的),或者 加上@Service注解(扫描service层)即可。
五、加@SpringBootApplication注解,数据库问题
根据问题看出:springboot启动时会自动注入数据源和配置jpa ,解决:
在@SpringBootApplication中排除其注入
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
六、端口重复问题
查看是否自己的运行端口冲突,将其kill杀死,重新启动,或者跟换端口
以下是查看端口冲突的方式:
-
window键+R,输入“netstat -aon|findstr 8080”找到占用8080端口的进程号:
2.输入“tasklist|findstr “3412” ”:查看进程号为“3412”的进程:
3.输入“taskkill /f /t /im QQ.exe”:(/f:强制性的结束进程)结束这个进程
现在可以重新启动一下,看是否运行成功
七、包冲突
还有的情况可能是包冲突了,可以将maven仓库清理一下自己的包,重新下载一下
——这里我举个例子
java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.security.servlet.WebSecurityEnablerConfiguration
这个报错说的意思是security包报错;也就是由于Spring Boot自动配置的安全功能出现问题导致;
——好,那我就把这个对应的依赖注释掉,重新刷新
<!-- <dependency>-->
<!-- <groupId>org.springframework.security</groupId>-->
<!-- <artifactId>spring-security-core</artifactId>-->
<!-- <version>4.1.3.RELEASE</version>-->
<!-- </dependency>-->
!启动成功
八 、springboot 数据源配置出错
报错描述如下:
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
1、yml 和 启动类中配置出问题(pom文件中配置了druid)
此处配置了druid,在启动类中则不能写成以下形式
@SpringBootApplication({exclude = {DruidDataSourceAutoConfigure.class} )
只能写成,或者删除yml中的Druid配置
@SpringBootApplication
2、yml中没有配置druid
则启动类写成以下形式,(pom文件中配置了druid)
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//排除自动配置
程序入口处:
@SpringBootApplication
public class DemoApplication {
修改为:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class DemoApplication {
3、解决方案
如果以上方法不行那就,将pom文件带有数据库相关的删除,例如:jdbc、mysql-connect等等
希望可以帮助到您
~感谢您的光临~
更多推荐
所有评论(0)