Deploy aplikacji na Tomcat

0

** Witam, podczas wdrażania mojej aplikacji na Tomcat wszystko się kompiluje, po uruchomieniu serwera zostaję domyślnie przekierowany do przeglądarki, gdzie od razu jest wysłane żądanie: http://localhost:8080/demo2_war_exploded/ i tutaj pojawia się komunikat: **

HTTP Status 404 – Not Found
Type Status Report
Message The requested resource [/demo2_war_exploded/] is not available
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/9.0.39

** Gdy wpiszę localhost:8080 pojawia się błąd: **

HTTP Status 404 – Not Found
Type Status Report
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/9.0.39

** W pliku pom.xml dodałem paczkę wynikową jako war, po czym wykonałem Maven clean i compile, następnie w Edit Configurations wybrałem paczkę exploded.
Poniżej zamieszczam obie klasy, plik pom.xml oraz logi serwera **

** pom.xml: **

<?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>2.3.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>demo2</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

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

</project>

** Demo2Application.java: **

package com.example.demo2;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Demo2Application {

    public static void main(String[] args) {
        SpringApplication.run(Demo2Application.class, args);
    }
}

** HomeController.java **

 package com.example.demo2;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HomeController {

    @RequestMapping("/")
    @ResponseBody
    public String home() {
        return "Application deployed";
    }
}

** logi: **

C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39\bin\catalina.bat run
[2020-10-29 01:23:58,456] Artifact demo2:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE:   "C:\Users\Karol\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_demo2_3"
Using CATALINA_HOME:   "C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39"
Using CATALINA_TMPDIR: "C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk-14.0.1"
Using CLASSPATH:       "C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39\bin\bootstrap.jar;C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39\bin\tomcat-juli.jar"
Using CATALINA_OPTS:   ""
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
29-Oct-2020 13:23:59.240 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.39
29-Oct-2020 13:23:59.242 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Oct 6 2020 14:11:46 UTC
29-Oct-2020 13:23:59.242 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.39.0
29-Oct-2020 13:23:59.242 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Windows 10
29-Oct-2020 13:23:59.242 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            10.0
29-Oct-2020 13:23:59.242 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
29-Oct-2020 13:23:59.243 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             C:\Program Files\Java\jdk-14.0.1
29-Oct-2020 13:23:59.243 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           14.0.1+7
29-Oct-2020 13:23:59.243 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
29-Oct-2020 13:23:59.243 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         C:\Users\Karol\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_demo2_3
29-Oct-2020 13:23:59.243 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39
29-Oct-2020 13:23:59.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
29-Oct-2020 13:23:59.244 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
29-Oct-2020 13:23:59.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
29-Oct-2020 13:23:59.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\Karol\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_demo2_3\conf\logging.properties
29-Oct-2020 13:23:59.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
29-Oct-2020 13:23:59.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
29-Oct-2020 13:23:59.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
29-Oct-2020 13:23:59.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
29-Oct-2020 13:23:59.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=C:\Users\Karol\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_demo2_3\jmxremote.password
29-Oct-2020 13:23:59.245 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=C:\Users\Karol\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_demo2_3\jmxremote.access
29-Oct-2020 13:23:59.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
29-Oct-2020 13:23:59.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
29-Oct-2020 13:23:59.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
29-Oct-2020 13:23:59.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
29-Oct-2020 13:23:59.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\Karol\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\Unnamed_demo2_3
29-Oct-2020 13:23:59.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39
29-Oct-2020 13:23:59.246 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39\temp
29-Oct-2020 13:23:59.251 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.25] using APR version [1.7.0].
29-Oct-2020 13:23:59.251 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
29-Oct-2020 13:23:59.251 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
29-Oct-2020 13:23:59.255 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1g  21 Apr 2020]
29-Oct-2020 13:23:59.432 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
29-Oct-2020 13:23:59.471 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [405] milliseconds
29-Oct-2020 13:23:59.514 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
29-Oct-2020 13:23:59.514 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.39]
29-Oct-2020 13:23:59.525 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
29-Oct-2020 13:23:59.535 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [64] milliseconds
Connected to server
[2020-10-29 01:23:59,567] Artifact demo2:war exploded: Artifact is being deployed, please wait...
29-Oct-2020 13:24:02.120 INFO [RMI TCP Connection(3)-127.0.0.1] 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.
[2020-10-29 01:24:02,375] Artifact demo2:war exploded: Artifact is deployed successfully
[2020-10-29 01:24:02,375] Artifact demo2:war exploded: Deploy took 2,808 milliseconds
29-Oct-2020 13:24:09.544 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39\webapps\manager]
29-Oct-2020 13:24:09.652 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\Karol\Downloads\apache-tomcat-9.0.39-windows-x64\apache-tomcat-9.0.39\webapps\manager] has finished in [107] ms
0

Nie jestem pewien, ale spróbuj ten controller dać o pakiet niżej niż główna klasa uruchomieniowa, czyli np na package com.example.demo2.controller;

0

Zmień @RequestMapping("/") na @RequestMapping("/hello") i odpal localhost:8080/hello no i @Controller zmieniłym na @RestController

0
MrMadMatt napisał(a):

Zmień @RequestMapping("/") na @RequestMapping("/hello") i odpal localhost:8080/hello

Nie działa, już próbowałem tego wcześniej

1

Czekaj czekaj, bo jest tutaj lekki zgrzyt - czemu Twój projekt buduje się do wara zamiast do jara? Przecież Spring Boot by default powinien zbudować jara, wewnątrz którego ma wbudowany Tomcat... Więc w Twoim pom.xml zamień war na jar, potem mvn package, i java -jar demo2-0.0.1-SNAPSHOT.jar

4

Ech, aż się smutno robi jak czytam te posty. Same jakieś pomysły z serii permutation driven development i zero zrozumienia co w ogóle robicie. Dramat.

@Karol8650 Spring Boot buduje ci jara który nie jest zgodny z javowym standardem jarów/warów. Wrzucanie go do tomcata to strata czasu, chyba ze dodasz sobie specjalne parametry do tego mavenowego plugina ( https://docs.spring.io/spring-boot/docs/1.5.x/maven-plugin/examples/repackage-classifier.html ), żeby wygenerował ci też "klasycznego" jara. Niemniej to nadal nie wystarczy dla tomcata, bo on potrzebuje jednak wara z tymi wszystkimi WEB-INF i innymi katalogami.
Nie kombinuj z tomcatem tylko odpal tego bootowego jara (java -jar cośtam.jar) i będzie działać, albo jak odpalasz z IDE to odpal po prostu maina z tej klasy Demo2Application

A kolegom z pomysłami w stylu zmień pakiet albo zmień Controller na RestCotroller to ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1