0

I have seen a lot of similar questions but none of them were helpful. I have made a Spring Boot application and I am trying to run it on tomcat v8.5. The application is running when I chose embedded tomcat. When I run external tomcat, I get following lines on console in red color:

Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name:   Apache Tomcat/8.5.84
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Nov 16 2022 13:34:24 UTC
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 8.5.84.0
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 10
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            10.0
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jdk1.8.0_301\jre
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_301-b09
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         E:\DevHub\.metadata\.plugins\org.eclipse.wst.server.core\tmp2
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         E:\apache-tomcat-8.5.84
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=E:\DevHub\.metadata\.plugins\org.eclipse.wst.server.core\tmp2
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=E:\apache-tomcat-8.5.84
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=E:\DevHub\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=E:\apache-tomcat-8.5.84\endorsed
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Dec 26, 2022 6:03:36 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [C:\Program Files\Java\jdk1.8.0_301\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:/Softwares/sts-4.13.0.RELEASE//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.1.v20211116-1657/jre/bin/server;D:/Softwares/sts-4.13.0.RELEASE//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.1.v20211116-1657/jre/bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\apache-maven-3.8.2\bin;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\Geo Information\AppData\Local\Microsoft\WindowsApps;C:\Users\Geo Information\AppData\Roaming\npm;C:\Users\Geo Information\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Java\jdk1.8.0_301\bin;C:\Program Files\MySQL\MySQL Server 5.7\bin;;D:\Softwares\sts-4.13.0.RELEASE;;.]
Dec 26, 2022 6:03:36 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-9090"]
Dec 26, 2022 6:03:36 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1121 ms
Dec 26, 2022 6:03:36 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Dec 26, 2022 6:03:36 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/8.5.84]
Dec 26, 2022 6:03:38 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [1,011] milliseconds.
Dec 26, 2022 6:03:38 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-9090"]
Dec 26, 2022 6:03:38 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1689 ms

My Controller is:

package com.devhub.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HomeController {

    @GetMapping({"/home", "/"})
    public ModelAndView home() {
        System.out.println("Hello");
        return new ModelAndView("components/home");
    }
}

But it gives me 404 page not found on the frontend. Following is my pom.xml 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.1</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.devhub</groupId>
    <artifactId>devhub</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>devhub</name>
    <description>DevHub Project in Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <scope>provided</scope>
            <version>2.3.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/jstl/jstl -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

I have tried solution https://stackoverflow.com/a/25151930/16437679 . By following this, on localhost:8080 I am getting the tomcat configuration screen. But on entering my url which is http://localhost:8080/devhub/home, I get 404. I also tried changing URL to http://localhost:8080/home but still getting 404.

Olaf Kock
  • 46,930
  • 8
  • 59
  • 90
Dragon
  • 25
  • 4
  • Spring boot 3 requires Tomcat 10 and JDK17 at least, nothing lower will work due to the package renaming which occurred. If you want to run it on Tomcat 8.5 and JDK8 downgrade your Spring boot to version 2. – zawarudo Dec 26 '22 at 13:23
  • @zawarudo thanks for the answer but this didn't solve my problem. I downgraded from `3.0.1`to `2.7.7`. I did `update maven project` but still no effect. – Dragon Dec 26 '22 at 14:19
  • @zawarudo I made another project and this time, I made two changes. First one was to downgrade to `2.7.7` and secondly I selected `war` instead of `jar`. Finally, I changed tomcat to v9.0 It resolved my problem. Thanks a lot for the help. – Dragon Dec 26 '22 at 17:05

0 Answers0