I also face the issue in deploying my spring boot app with tomcat , The below are the things which i did
I dont even see any errors while making the tomcat server up
I am not sure what is the problem here
I will attach the pom,main spring boot application,controller class and log file
Below is my pom file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<groupId>org.example</groupId>
<artifactId>hibernate_learning</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<finalName>hibernate_app</finalName>
</build>
<!-- https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-core -->
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.6.1.Final</version> <!-- Ensure this version matches your Hibernate version -->
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version> <!-- or the latest version -->
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version> <!-- or a newer version if applicable -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.3.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>3.3.5</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version> <!-- or the latest version -->
</dependency>
<!-- Jackson Databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version> <!-- Check and update version as per Spring Boot -->
</dependency>
<!-- Jackson Core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.2</version>
</dependency>
<!-- Jackson Annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.15.2</version>
</dependency>
</dependencies>
Below is my main file
package org.example.api;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class entityAPI extends SpringBootServletInitializer { // the extended is for the tomcat
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(entityAPI.class);
}
public static void main(String[] args) {
SpringApplication.run(entityAPI.class, args);
}
}
here is the controller file
package org.example.api;
import org.example.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
@RestController
@RequestMapping("/api/students")
public class StudentController {
@Autowired
private ServiceLayer studentService;
@GetMapping("/healthCheck")
public String sample() {
return "I am healthy";
}
}
Here is the Log file
09-Nov-2024 20:08:53.883 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
09-Nov-2024 20:08:53.901 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [2198] milliseconds
09-Nov-2024 20:10:16.716 INFO [http-nio-8080-exec-7] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-9.0.97\webapps\hibernate_app.war]
09-Nov-2024 20:10:21.893 WARNING [http-nio-8080-exec-7] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [6.0]. Default version will be used.
09-Nov-2024 20:10:21.952 WARNING [http-nio-8080-exec-7] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [6.0]. Default version will be used.
09-Nov-2024 20:10:21.969 WARNING [http-nio-8080-exec-7] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used.
09-Nov-2024 20:10:25.221 INFO [http-nio-8080-exec-7] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
09-Nov-2024 20:10:25.229 INFO [http-nio-8080-exec-7] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-9.0.97\webapps\hibernate_app.war] has finished in [8,513] ms
09-Nov-2024 20:18:01.683 INFO [Thread-1] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
09-Nov-2024 20:18:01.707 INFO [Thread-1] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
09-Nov-2024 20:18:01.747 INFO [Thread-1] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
09-Nov-2024 20:18:01.765 INFO [Thread-1] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
09-Nov-2024 20:18:25.346 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.97
09-Nov-2024 20:18:25.349 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Nov 6 2024 19:55:19 UTC
09-Nov-2024 20:18:25.350 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.97.0
09-Nov-2024 20:18:25.350 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 11
09-Nov-2024 20:18:25.350 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 10.0
09-Nov-2024 20:18:25.350 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
09-Nov-2024 20:18:25.351 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\jdk-21.0.2
09-Nov-2024 20:18:25.351 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 21.0.2+13-58
09-Nov-2024 20:18:25.351 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
09-Nov-2024 20:18:25.351 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\apache-tomcat-9.0.97
09-Nov-2024 20:18:25.351 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-9.0.97
09-Nov-2024 20:18:25.357 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
09-Nov-2024 20:18:25.357 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
09-Nov-2024 20:18:25.357 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
09-Nov-2024 20:18:25.357 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
09-Nov-2024 20:18:25.357 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
09-Nov-2024 20:18:25.357 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\apache-tomcat-9.0.97\conf\logging.properties
09-Nov-2024 20:18:25.358 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
09-Nov-2024 20:18:25.358 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
09-Nov-2024 20:18:25.358 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
09-Nov-2024 20:18:25.358 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
09-Nov-2024 20:18:25.358 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\apache-tomcat-9.0.97
09-Nov-2024 20:18:25.359 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-9.0.97
09-Nov-2024 20:18:25.359 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\apache-tomcat-9.0.97\temp
09-Nov-2024 20:18:25.361 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.3.1] using APR version [1.7.4].
09-Nov-2024 20:18:25.362 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
09-Nov-2024 20:18:25.362 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
09-Nov-2024 20:18:25.366 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.14 4 Jun 2024]
09-Nov-2024 20:18:25.598 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
09-Nov-2024 20:18:25.620 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [427] milliseconds
09-Nov-2024 20:18:25.675 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
09-Nov-2024 20:18:25.675 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.97]
09-Nov-2024 20:18:25.700 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-9.0.97\webapps\hibernate_app.war]
09-Nov-2024 20:18:30.326 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [6.0]. Default version will be used.
09-Nov-2024 20:18:30.332 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [6.0]. Default version will be used.
09-Nov-2024 20:18:30.340 WARNING [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used.
09-Nov-2024 20:18:31.811 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
09-Nov-2024 20:18:31.854 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-9.0.97\webapps\hibernate_app.war] has finished in [6,153] ms
and here is my folder structure
+---src
| +---main
| | +---java
| | | \---org
| | | \---example
| | | | CreateData.java
| | | | DeleteData.java
| | | | Main.java
| | | | Student.java
| | | | UpdateData.java
| | | |
| | | \---api
| | | entityAPI.java
| | | readMe.md
| | | ServiceLayer.java
| | | StudentController.java
| | |
| | \---resources
| | application.properties
| | hibernate.cfg.xml
| | retrieveOutput.json
| |
| \---test
| \---java
\---target
| hibernate_app.war
|
+---classes
| | application.properties
| | hibernate.cfg.xml
| | retrieveOutput.json
| |
| \---org
| \---example
| | CreateData.class
| | DeleteData.class
| | Main.class
| | Student.class
| | UpdateData.class
| |
| \---api
| entityAPI.class
| ServiceLayer.class
| StudentController.class
|
+---generated-sources
| \---annotations
+---generated-test-sources
| \---test-annotations
+---hibernate_app
| +---META-INF