最近需要将一个springboot项目部署到一台新服务器上。而且新服务器是完全copy了旧服务器的环境与项目。但是在新服务器上启动该springboot项目,就一直报错

2019-03-18 18:54:35.532 [main] ERROR o.s.boot.SpringApplication - Application startup failed
java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@44:13 - RuntimeException in Action for tag [appender] java.lang.IllegalStateException: DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialectat org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:162)at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:81)at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:59)at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:115)at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:303)at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:276)at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:239)at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:212)at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122)at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:325)at org.springframework.boot.SpringApplication.run(SpringApplication.java:296)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)at com.xhl.leads.leadsmail.LeadsMailApplication.main(LeadsMailApplication.java:66)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:587)

看上面报错信息说是数据库相关的问题。找到项目集成的logback-spring.xml,然后搜索DBAppender这个类,猜测是在链接数据库时有问题。于是和运维人员确认了一下该配置文件连接的数据库服务器的防火墙。经查看,该数据库的防火墙,对于访问ip有限制。将新服务器的ip加入数据库服务器的防火墙里,项目就能正常启动了。

附赠:logback-spring.xml配置文件。注意:该配置文件中有需要自己改动的地方:例如"项目名","数据库ip","数据库用户名","数据库密码","数据库库名"

<?xml version="1.0" encoding="utf-8"?>
<configuration><appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>DEBUG</level><onMatch>DENY</onMatch><onMismatch>ACCEPT</onMismatch></filter><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder><!--滚动策略--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--路径--><fileNamePattern>/var/log/项目名/info.%d.log</fileNamePattern></rollingPolicy></appender><appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>ERROR</level></filter><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder><!--滚动策略--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--路径--><fileNamePattern>/var/log/项目名/error.%d.log</fileNamePattern></rollingPolicy></appender><appender name="DB" class="ch.qos.logback.classic.db.DBAppender"><connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"><driverClass>com.mysql.jdbc.Driver</driverClass><url>jdbc:mysql://数据库ip:3306/数据库库名?useUnicode=true&amp;characterEncoding=UTF-8</url><user>数据库用户名</user><password>数据库密码</password></connectionSource></appender><appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">  <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->  <discardingThreshold >0</discardingThreshold>  <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->  <queueSize>512</queueSize>  <!-- 添加附加的appender,最多只能添加一个 -->  <appender-ref ref ="DB"/>  </appender>  <root level="info"><appender-ref ref="consoleLog" /></root><logger name="com.alibaba.druid" level="error" additivity="false"><appender-ref ref="consoleLog" /><appender-ref ref="fileErrorLog" /></logger><logger name="org.springframework" level="error" additivity="false"><appender-ref ref="consoleLog" /><appender-ref ref="fileErrorLog" /></logger><logger name="org.hibernate" level="error" additivity="false"><appender-ref ref="consoleLog" /><appender-ref ref="fileErrorLog" /></logger><logger name="org.apache" level="error" additivity="false"><appender-ref ref="consoleLog" /><appender-ref ref="fileErrorLog" /></logger><logger name="com.xhl.cuss" level="info" additivity="false"><appender-ref ref="fileInfoLog" /><appender-ref ref="fileErrorLog" /><appender-ref ref="consoleLog" /><appender-ref ref="ASYNC" /></logger></configuration>

springboot集成logback,报错java.lang.IllegalStateException: Logback configuration error detected:相关推荐

  1. Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]

    一:运行test类方法时候报错 报错 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. S ...

  2. SpringBoot+MyBatis启动报错java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

    2019独角兽企业重金招聘Python工程师标准>>> 如题,在启动SpringBoot时报SpringBoot+MyBatis启动报错java.lang.NoClassDefFou ...

  3. 报错 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @Bootstra

    由于我maven仓库之前已经有了有个5.0.10的test包 导致我的变量 <org.springframework.version>4.2.5.RELEASE</org.sprin ...

  4. 解决Hbase报错java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for....

    完整报错为: java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper ...

  5. 解决:room无论如何怎么修改数据库版本都报错java.lang.IllegalStateException: Room cannot verify the data integrity

    问题描述 这已经是第二次遇到这个bug了,第一次卡了一两天,这次卡了半天. bug: java.lang.IllegalStateException: Room cannot verify the d ...

  6. Android Studio报错 “java.lang.IllegalStateException: Room cannot verify the data integrity” 解决方法

    最近在Android Studio遇到以下报错: Caused by: java.lang.IllegalStateException: Room cannot verify the data int ...

  7. IDEA热布署报错java.lang.IllegalStateException: Restarter has not been initialized

    在IDEA导入devtools依赖实现热布署,启动后遇到如下问题 java.lang.IllegalStateException: Restarter has not been initialized ...

  8. springboot配置log4j2报错:java.lang.IllegalStateException: Logback configuration error detected:

    引入log4j2后启动报错. Exception in thread "main" java.lang.IllegalStateException: java.lang.Illeg ...

  9. Spring Boot与Log4j2集成之java.lang.IllegalStateException: Logback configuration error detected:

    引言: 一个问题的分析与解决过程是表与里的过程,是一个大胆猜测与小心求证的过程,spring boot与log4j2的集成过程中,我将描述一下分析这个问题的思路和过程. 我一直强调一点: 重要的不是解 ...

最新文章

  1. 微信小程序获取页面栈
  2. python新手菜鸟之基础篇
  3. 基础三:控制执行流程
  4. 实战部署MySQL用户认证的Postfix邮件系统(3)
  5. 如何在ASP.NET Core应用中实现与第三方IoC/DI框架的整合?
  6. 谈“发表(撰写)学术论文的注意事项”
  7. mysql创建独立表空间_InnoDB独立表空间
  8. Error和Exception(异常)
  9. 线上zabbix数据库重建表分区
  10. 类和对象编程(八):指向类的指针
  11. 孙鑫-MFC笔记六--绘图,重绘
  12. linux查看php执行用户,在浏览器中打开php文件时,是Linux中的哪个用户执行的?...
  13. python3安装及加载gensim
  14. 在Android的Termux超级终端下进行内网穿透
  15. 计算机笔记检讨,没做笔记检讨书
  16. 游戏建模:模型场景制作过程分享
  17. 碱性溶液中HER动力学分析
  18. Photoshop学习(一)Ps基础
  19. java 注解处理器的作用_Java注解处理器
  20. C语言的字符数组(字符串)的定义与初始化

热门文章

  1. 多线程,了解-概念-实现方式-常见方法-安全问题-死锁-生产者消费者
  2. UIL 算法学习 Structure Based User Identification across Social Networks
  3. 电脑文件恢复工具软件:易我数据恢复图文详解
  4. [厂长首作]MIPCMS自适应新闻资讯模板
  5. 【数值分析--有限差分法】
  6. USART串口全双工与SPI全双工通信的区别!
  7. 批量提取多个文件夹中的某类文件到指定文件夹中
  8. 西门子et200 分布式i/o_西门子S7-1200/1500的硬件数据记录(1)-参数数据记录
  9. STM32F4-SPI
  10. 影楼后期修图调色ps神器插件下载_安装教程