You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Spring Boot嵌入式Tomcat无法启动问题求助

Troubleshooting Embedded Tomcat Startup Failure in Your Spring Boot App

Hey there, since your Spring Initializr-generated project works on other systems but fails on yours, we can narrow this down to environment-specific issues on your machine. Let’s walk through the most common fixes step by step:

1. Verify Java Version Compatibility

Spring Boot has strict Java version requirements—for example:

  • Spring Boot 3.x requires Java 17 or later
  • Spring Boot 2.7.x supports Java 8, 11, and 17

Run these commands in your terminal to check your current versions:

java -version
mvn -v

Compare the output with the <java.version> value in your pom.xml. If they don’t match, install the correct Java version and update your JAVA_HOME environment variable.

2. Check for Port Conflicts

The default Tomcat port (8080) might be occupied by another application (like a web server, database, or even another Spring Boot app).

  • Windows: Run this command to find the process using port 8080:

    netstat -ano | findstr :8080
    

    Then kill the process with taskkill /F /PID <process-id>.

  • Linux/macOS: Use this command to locate and terminate the process:

    lsof -i :8080
    kill -9 <process-id>
    

Alternatively, change the Tomcat port in src/main/resources/application.properties:

server.port=8081

3. Fix Corrupted Maven Dependencies

Your local Maven repository might have corrupted or incomplete dependency files. Try cleaning and re-downloading dependencies:

  1. Delete the Spring-related folders in your local Maven repo (usually at ~/.m2/repository/org/springframework on Linux/macOS, or C:\Users\<your-name>\.m2\repository\org\springframework on Windows).
  2. Run this command in your project directory:
    mvn clean install
    

4. Validate Your Full pom.xml

The snippet you shared is incomplete—make sure these critical sections are present and correct:

  • The Spring Boot parent dependency (this manages all versioning):
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>your-boot-version</version>
        <relativePath/>
    </parent>
    
  • The web starter (which includes embedded Tomcat):
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    

5. Share the Exact Error Logs

The most helpful info is missing here—what’s the exact error message in your console? Run mvn spring-boot:run and copy the full error stack trace. Common issues include:

  • Address already in use (port conflict)
  • UnsupportedClassVersionError (Java version mismatch)
  • NoClassDefFoundError (missing dependencies)

Once you share the logs, we can pinpoint the exact problem faster!

内容的提问来源于stack exchange,提问作者Jayanta Rijal

火山引擎 最新活动