SQL Diagnoser 部署启动失败问题咨询

mq@OBPILOT:~$ java -jar ./sql-diagnoser-4.2.0.0-20230921.jar
2024-02-27 18:13:25.367 [background-preinit] INFO  org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.5.Final

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.7.12)

2024-02-27 18:13:26.872 [main] INFO  com.oceanbase.Application - No active profile set, falling back to 1 default profile: "default"
2024-02-27 18:13:27.698 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-02-27 18:13:27.825 [main] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 118 ms. Found 0 JPA repository interfaces.
2024-02-27 18:13:28.135 [main] INFO  o.springframework.cloud.context.scope.GenericScope - BeanFactory id=98150585-91b8-3e3c-96c9-261108800aad
2024-02-27 18:13:28.613 [main] WARN  o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is java.lang.NoSuchMethodError: 'void org.apache.catalina.Context.addServletContainerInitializer(javax.servlet.ServletContainerInitializer, java.util.Set)'
2024-02-27 18:13:28.621 [main] INFO  o.s.b.a.l.ConditionEvaluationReportLoggingListener - 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2024-02-27 18:13:28.643 [main] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter - 

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.configureContext(TomcatServletWebServerFactory.java:381)

The following method did not exist:

    'void org.apache.catalina.Context.addServletContainerInitializer(javax.servlet.ServletContainerInitializer, java.util.Set)'

The calling method's class, org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory, was loaded from the following location:

    jar:file:/home/mq/sql-diagnoser-4.2.0.0-20230921.jar!/BOOT-INF/lib/spring-boot-2.7.12.jar!/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactory.class

The called method's class, org.apache.catalina.Context, is available from the following locations:

    jar:file:/home/mq/sql-diagnoser-4.2.0.0-20230921.jar!/BOOT-INF/lib/tomcat-embed-core-10.1.0-M14.jar!/org/apache/catalina/Context.class

The called method's class hierarchy was loaded from the following locations:

    org.apache.catalina.Context: jar:file:/home/mq/sql-diagnoser-4.2.0.0-20230921.jar!/BOOT-INF/lib/tomcat-embed-core-10.1.0-M14.jar!/


Action:

Correct the classpath of your application so that it contains compatible versions of the classes org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory and org.apache.catalina.Context

换成 openjdk 8试试

果然可以。 :+1:

1 个赞