无法启动嵌入式的Tomcat org.springframework.context.ApplicationContextException。

16 浏览
0 Comments

无法启动嵌入式的Tomcat org.springframework.context.ApplicationContextException。

最近开始使用Spring Boot。尝试创建一个简单的登录页面,以便将我的Spring MVC项目迁移到Spring Boot。然而,一直出现以下错误:

无法启动Web服务器;嵌入式Tomcat出现异常。

我已经查看了所有与无法启动嵌入式Tomcat相关的stackoverflow和文章。例如,我尝试将pom.xml更改为旧版本,尝试更改端口,因为有人说可能出现问题,并尝试将Spring Boot控制器的注释调整为@EnableAutoConfiguration@SpringBootApplication,但这似乎并没有改变错误日志。

我还尝试更改了Java版本,并且同时使用Java 8和10进行了尝试。

POM.XML - 来自https://start.spring.io/

...

MainController.java

...

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
...(错误日志继续)

如果有任何帮助,将不胜感激。如果信息不足,请告诉我。

0
0 Comments

在我的情况下:

  1. 我创建了一个独立的新项目,使用相同的代码相同的工作空间
  2. 启动了该应用程序。
  3. 这次Tomcat在第一次启动时成功了。

根据上述情况,我们可以推断出"Unable to start embedded Tomcat org.springframework.context.ApplicationContextException"问题的出现原因可能是项目的配置文件发生了变化,导致Tomcat无法成功启动。

为了解决这个问题,我们可以尝试以下方法:

  1. 检查项目的配置文件(如application.properties或application.yml)是否存在错误或发生了变化。
  2. 确保配置文件中的所有依赖项和路径都正确设置。
  3. 检查项目的依赖项是否正确导入。
  4. 尝试重新构建项目,并清除所有临时文件和缓存。
  5. 确保项目的端口号没有被其他应用程序占用。
  6. 尝试将项目从其他IDE(如Eclipse或IntelliJ)导入到新的工作空间中,并重新启动Tomcat。
  7. 如果问题仍然存在,可以尝试使用不同版本的Tomcat或Spring框架。

希望以上方法能够解决"Unable to start embedded Tomcat org.springframework.context.ApplicationContextException"的问题。如果问题仍然存在,请考虑寻求更高级的技术支持。

0
0 Comments

原因:该问题的出现是由于缺少了application.properties文件中的一个属性。具体来说,是缺少了spring.jpa.hibernate.ddl-auto属性。

解决方法:通过在application.properties文件中添加缺少的属性值来解决该问题。具体的属性值是spring.jpa.hibernate.ddl-auto=update。

以下是一个解决该问题的实例:

@SpringBootApplication
public class Application {
   public static void main(String[] args) {
      SpringApplication.run(Application.class, args);
   }
}


   
   
      org.springframework.boot
      spring-boot-starter-web
   
   
   
      org.springframework.boot
      spring-boot-starter-data-jpa
   
   
   
      org.hibernate
      hibernate-core
   
   
   
      com.h2database
      h2
   

# application.properties

spring.datasource.url=jdbc:h2:mem:testdb

spring.datasource.username=sa

spring.datasource.password=

spring.jpa.show-sql=true

spring.jpa.hibernate.ddl-auto=update

希望以上内容对你有所帮助!

0
0 Comments

无法启动嵌入式Tomcat org.springframework.context.ApplicationContextException问题出现的原因是在错误日志中的Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set。虽然Hibernate是数据库无关的,但我们可以指定当前数据库方言,以便它为该数据库生成更好的SQL查询。因此,可以通过在属性文件中标识hibernate.dialect来解决此异常。

对于application.properties文件,可以添加以下内容:

spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

对于application.yml文件,可以添加以下内容:

spring:

jpa:

database-platform: org.hibernate.dialect.MySQL5Dialect

调试时,通常可以在最后一个“Caused by”语句中找到根本原因。这是一个非常好的指示来查找问题的根本原因。

0