Spring Boot应用启动失败:嵌入式Tomcat初始化触发NPE
Spring Boot启动时Tomcat WebSocket初始化空指针异常问题
我的应用基于Spring Boot 2.5.12、Gradle 7.3.3构建,启动时无法启动嵌入式Tomcat,触发空指针异常(NPE),异常堆栈显示问题出在org.apache.tomcat.websocket.server.WsServerContainer的初始化阶段。已尝试Stack Overflow上的各类解决方案但均未成功,项目build.gradle已引入spring-boot-web等必要依赖,怀疑是Tomcat版本与其他库存在兼容性问题。
错误日志
2022-09-14 11:52:05.893 1179 [background-preinit] INFO Version - HV000001: Hibernate Validator 6.2.3.Final 2022-09-14 11:52:05.972 1258 [main] INFO - Starting app using Java 1.8.0_342 on 2022-09-14 11:52:05.975 1261 [main] INFO - The following 1 profile is active: "develop" 2022-09-14 11:52:07.126 2412 [main] INFO RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2022-09-14 11:52:07.242 2528 [main] INFO RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 111 ms. Found 15 JPA repository interfaces. 2022-09-14 11:52:07.517 2803 [main] INFO PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'webSocketConfig' of type [cip.v32.services.service.investigation.modules.messaging.websocket.WebSocketConfig$$EnhancerBySpringCGLIB$$7dd4fc38] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2022-09-14 11:52:07.773 3059 [main] INFO TomcatWebServer - Tomcat initialized with port(s): 8081 (http) 2022-09-14 11:52:07.779 3065 [main] INFO Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8081"] 2022-09-14 11:52:07.780 3066 [main] INFO StandardService - Starting service [Tomcat] 2022-09-14 11:52:07.780 3066 [main] INFO StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.60] 2022-09-14 11:52:07.855 3141 [main] INFO [/api/v1] - Initializing Spring embedded WebApplicationContext 2022-09-14 11:52:07.855 3141 [main] INFO ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1839 ms 2022-09-14 11:52:07.998 3284 [main] ERROR ContainerBase - A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/api/v1]] at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_342] at java.util.concurrent.FutureTask.get(FutureTask.java:192) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[/api/v1]] Caused by: java.lang.NullPointerException at org.apache.tomcat.websocket.server.WsServerContainer.<init>(WsServerContainer.java:109) ~[tomcat-embed-websocket-9.0.60.jar:9.0.60]
build.gradle配置
plugins { id 'groovy' id 'org.springframework.boot' version '2.7.3' id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' } dependencies { // Third party dependencies implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.retry:spring-retry' implementation 'org.springframework.boot:spring-boot-starter-websocket' // Third party dependencies implementation 'com.auth0:java-jwt:3.8.3' // Contains vulnerabilities implementation 'com.codahale.metrics:metrics-core:3.0.2' implementation 'com.google.code.findbugs:jsr305:3.0.0' implementation 'com.google.code.gson:gson:2.8.5' // Contains vulnerabilities implementation 'com.googlecode.java-ipv6:java-ipv6:0.17' implementation 'com.itextpdf:itextpdf:5.5.13.1' // Contains vulnerabilities implementation 'com.jayway.jsonpath:json-path:2.4.0' // Contains vulnerabilities implementation 'com.squareup.okhttp:okhttp:2.7.5' implementation 'commons-beanutils:commons-beanutils:1.9.4' implementation 'commons-net:commons-net:3.8.0' // Contains vulnerabilities implementation 'de.grundid.opendatalab:geojson-jackson:1.14' implementation 'eu.bitwalker:UserAgentUtils:1.20' // Contains vulnerabilities implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'io.springfox:springfox-swagger-ui:3.0.0' implementation 'javax.ws.rs:javax.ws.rs-api:2.1.1' // Contains vulnerabilities implementation 'org.apache.commons:commons-collections4:4.4' // Contains vulnerabilities implementation 'org.apache.commons:commons-compress:1.21' implementation 'org.apache.commons:commons-csv:1.9.0' implementation 'org.apache.commons:commons-lang3:3.12.0' implementation 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.12.1' // Contains vulnerabilities implementation 'org.jetbrains:annotations:13.0' implementation 'org.openjdk.jmh:jmh-core:1.25' annotationProcessor 'org.projectlombok:lombok:1.18.10' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' compileOnly 'org.projectlombok:lombok:1.18.10' // Test dependencies testImplementation 'com.h2database:h2' testImplementation 'commons-io:commons-io:1.3.2' testImplementation 'org.openjdk.jmh:jmh-generator-annprocess:1.25' testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' testImplementation 'org.testcontainers:junit-jupiter:1.15.0' testImplementation 'org.testcontainers:postgresql:1.15.0' testImplementation 'org.testcontainers:testcontainers:1.15.0' testAnnotationProcessor 'org.projectlombok:lombok:1.18.10' testCompileOnly 'org.projectlombok:lombok:1.18.10' } configurations.implementation { exclude group: 'ch.qos.logback', module: 'logback-classic' exclude group: 'ch.qos.logback', module: 'logback-core' exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j' }
主类代码
@Data @SpringBootApplication @EnableRetry @ConfigurationProperties(prefix = "spring.db") public class CipMiddleware { public static void main(String[] args) { SpringApplication.run(CipMiddleware.class, args); } }
内容的提问来源于stack exchange,提问作者Bartosz Bujnicki
相关产品推荐
相关产品推荐

