SpringBoot aplikace s VÁLKOU nasazení na Heroku ukazuje 404

0

Otázka

Právě jsem vytvořil Hello World Spring Boot aplikaci s pouze jeden koncový bod a podařilo se mi nasadit na heroku jako válka.

Sledoval jsem to nasadit to jako válka: https://devcenter.heroku.com/articles/war-deployment

Ale chápu, 404, když jsem přístup mé aplikace :

2021-11-23T21:36:46.508498+00:00 heroku[web.1]: Idling
2021-11-23T21:36:46.510524+00:00 heroku[web.1]: State changed from up to down
2021-11-23T21:36:47.140592+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2021-11-23T21:36:47.335504+00:00 app[web.1]: Nov 23, 2021 9:36:47 PM org.apache.coyote.AbstractProtocol pause
2021-11-23T21:36:47.335511+00:00 app[web.1]: INFO: Pausing ProtocolHandler ["http-nio-38859"]
2021-11-23T21:36:47.517653+00:00 heroku[web.1]: Process exited with status 143
2021-11-24T05:37:19.104697+00:00 heroku[web.1]: Unidling
2021-11-24T05:37:19.535273+00:00 heroku[web.1]: State changed from down to starting
2021-11-24T05:37:22.936676+00:00 heroku[web.1]: Starting process with command `java $JAVA_OPTS -jar webapp-runner.jar ${WEBAPP_RUNNER_OPTS} --port 16691 ./target/demo-0.0.1-SNAPSHOT.war`
2021-11-24T05:37:23.919640+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2021-11-24T05:37:23.924573+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2021-11-24T05:37:24.285669+00:00 app[web.1]: Expanding demo-0.0.1-SNAPSHOT.war into /app/target/tomcat.16691/webapps/expanded
2021-11-24T05:37:24.285690+00:00 app[web.1]: Adding Context  for /app/target/tomcat.16691/webapps/expanded
2021-11-24T05:37:24.749035+00:00 app[web.1]: Nov 24, 2021 5:37:24 AM org.apache.coyote.AbstractProtocol init
2021-11-24T05:37:24.749046+00:00 app[web.1]: INFO: Initializing ProtocolHandler ["http-nio-16691"]
2021-11-24T05:37:24.768181+00:00 app[web.1]: Nov 24, 2021 5:37:24 AM org.apache.catalina.core.StandardService startInternal
2021-11-24T05:37:24.768185+00:00 app[web.1]: INFO: Starting service [Tomcat]
2021-11-24T05:37:24.769185+00:00 app[web.1]: Nov 24, 2021 5:37:24 AM org.apache.catalina.core.StandardEngine startInternal
2021-11-24T05:37:24.769186+00:00 app[web.1]: INFO: Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-11-24T05:37:24.904948+00:00 app[web.1]: Nov 24, 2021 5:37:24 AM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
2021-11-24T05:37:24.904952+00:00 app[web.1]: INFO: No global web.xml found
2021-11-24T05:37:25.237869+00:00 heroku[web.1]: State changed from starting to up
2021-11-24T05:37:30.896421+00:00 app[web.1]: Nov 24, 2021 5:37:30 AM org.apache.catalina.core.ApplicationContext log
2021-11-24T05:37:30.896430+00:00 app[web.1]: INFO: 1 Spring WebApplicationInitializers detected on classpath
2021-11-24T05:37:31.008521+00:00 app[web.1]: Nov 24, 2021 5:37:31 AM org.apache.jasper.servlet.TldScanner scanJars
2021-11-24T05:37:31.008525+00:00 app[web.1]: INFO: 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.
2021-11-24T05:37:31.041498+00:00 app[web.1]: Nov 24, 2021 5:37:31 AM org.apache.coyote.AbstractProtocol start
2021-11-24T05:37:31.041500+00:00 app[web.1]: INFO: Starting ProtocolHandler ["http-nio-16691"]
2021-11-24T05:37:31.424445+00:00 heroku[router]: at=info method=GET path="/" host=demorares.herokuapp.com request_id=b510219f-853c-4082-bcca-ef0723a0fcda fwd="86.120.154.120" dyno=web.1 connect=0ms service=5664ms status=404 bytes=864 protocol=https

Také jsem viděl, že když jsem vždycky nasazení war souboru se zobrazí chyba (když jsem spustit heroku válka:nasazení <path_to_war_file> --aplikace <jmeno_aplikace>):

Exception in thread "Thread-0" java.lang.RuntimeException: Failed to delete 

C:\Users\Rares\AppData\Local\Temp\heroku-deploy2171663334171038805
        at com.heroku.sdk.deploy.DeleteDirectoryRunnable.run(DeleteDirectoryRunnable.java:46)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.nio.file.FileSystemException: C:\Users\Rares\AppData\Local\Temp\heroku-deploy2171663334171038805\heroku\app\.heroku-deploy: The process cannot access the file because it is being used by another process.

Ale já si to po sestavení je úspěšně nasazen na Heroku.

Tady je můj kód:

Pružina Regulátoru:

@RestController
public class Controller {

 @GetMapping("/test")
 public String test() {
    return "IS WORKING";
 }

}

POM:

<?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.6.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example.test</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</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>
        </dependency>
    </dependencies>
    <packaging>war</packaging>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

HEROKU:

Build succeeded
Yesterday at 11:01 PM · View build log
heroku java spring-boot war
2021-11-24 05:45:28
1

Nejlepší odpověď

0

Budete muset přidat maven plugin pro heroku.

<project>
  ...
  <build>
    ...
    <plugins>
      <plugin>
        <groupId>com.heroku.sdk</groupId>
        <artifactId>heroku-maven-plugin</artifactId>
        <version>3.0.3</version>
      </plugin>
    </plugins>
  </build>
</project>

Protože nepoužíváte git, pro nasazení budete také muset použít následující konfiguraci s app název:

<configuration>
  <appName>my-war-app-name</appName>
</configuration>

Podrobnosti o tom je tady na zavádění java aplikací s heroku maven plugin doc

2021-11-24 06:11:08

Můj POM soubor vypadá teď, ale je to stále nefunguje (demorares je heroku aplikace): <plugin> <groupId>com.heroku.sdk</groupId> <artifactId>heroku-maven-plugin</artifactId> <version>3.0.3</version> <configuration> <appName>demorares</appName> </configuration> </plugin>
ProgIsMetal

nějaké jiné návrhy?
ProgIsMetal

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................