Le déploiement de Java Heroku échoue


Je reçois toujours cette erreur lorsque j'essaie de déployer un serveur Java sur Heroku.

entrez la description de l'image ici

2017-11-18T18:22:34.252354+00:00 heroku[router]: at=error code=H14 desc="No web 
processes running" method=GET path="/favicon.ico" host=javachatapp-dataserver.herokuapp.com request_id=e899dbbc-1687-470d-a14f-2fffd0cdba12 fwd="24.125.73.190" dyno= connect= service= status=503 bytes= protocol=https

2017-11-18T18:22:34.195269+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=javachatapp-dataserver.herokuapp.com request_id=f3363e55-f850-4235-90e2-6cb6468dc7e5 fwd="24.125.73.190" dyno= connect= service= status=503 bytes= protocol=https

Je pense qu'il a un chemin incorrect dans le profil, car lorsque Heroku est en construction, je vois cette erreur:

2017-11-18T01:04:45.763178+00:00 heroku[web.1]: Starting process with command `java -jar ./target/chatappdataserver-1.0-jar-with-dependencies.jar`
2017-11-18T01:04:47.619837+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2017-11-18T01:04:47.620602+00:00 app[web.1]: Error: Unable to access jarfile ./target/chatappdataserver-1.0-jar-with-dependencies.jar

Mais c'est littéralement ce que mon Procfile contient:

web: java -jar ./target/chatappdataserver-1.0-SNAPSHOT-jar-with-dependencies.jar

Lorsque je me connecte à bash sur heroku et que je démarre le serveur manuellement avec la commande ci-dessus, cela fonctionne, mais je n'arrive pas à obtenir heroku pour démarrer le serveur avec heroku open. Il se bloque sur chaque version. Quelqu'un a déjà vu ça?

Il est possible de créer un fichier dans Heroku entrez la description de l'image ici


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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.wisen.chatappdataserver</groupId>
    <artifactId>chatappdataserver</artifactId>
    <version>1.0-SNAPSHOT</version>


    <dependencies>
        <dependency>
            <groupId>com.sparkjava</groupId>
            <artifactId>spark-core</artifactId>
            <version>2.2</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <descriptorRefs>
                        <!-- This tells Maven to include all dependencies -->
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.heroku.sdk</groupId>
                <artifactId>heroku-maven-plugin</artifactId>
                <version>0.4.4</version>
                <configuration>
                    <jdkVersion>1.8</jdkVersion>
                    <appName>javachatapp-dataserver</appName>
                    <processTypes>
                        <!-- Tell Heroku how to launch your application -->
                        <web>java -jar ./target/chatappdataserver-1.0-jar-with-dependencies.jar</web>
                    </processTypes>
                </configuration>
            </plugin>
        </plugins>
    </build>



</project>
Author: wizeOnes, 2017-11-18

2 answers

Je vois deux choses intéressantes.

Votre fichier procfile fait référence à

web: java -jar ./target/chatappdataserver-1.0-SNAPSHOT-jar-with-dependencies.jar

Ce qui est raisonnable puisque votre pom définit la version comme 1.0-SNAPSHOT mais Heroku essaie de trouver le fichier jar java -jar ./target/chatappdataserver-1.0-jar-with-dependencies.jar en fonction du journal que vous avez partagé.

C'est étrange et quelque chose que vous devez comprendre. Ou changez votre version dans votre pom en 1.0

La version

N'a pas besoin d'être ajoutée avec SNAPSHOT.

L'autre chose que je trouve étrange est que vous ne spécifiez pas le port que vous souhaitez utiliser. Heroku attribue dynamiquement un port et ils achemineront ensuite les appels de votre hôte javachatapp-dataserver.herokuapp.com sur le port 80 vers ce port attribué dynamiquement.

Dans mon procfile, j'ai défini un port comme celui-ci

-Dport=$PORT

Mon procfile complet ressemble à ceci

web: java $JAVA_OPTS -Dport=$PORT -jar ./build/libs/tage-1.0-SNAPSHOT-all.jar

Je construis en utilisant Gradle afin que le chemin d'accès au fichier jar soit différent. Mais c'est la seule grande différence entre l'utilisation de Maven et Gradle dans ce contexte.

 2
Author: Thomas Sundberg, 2017-11-20 06:12:21

Essayez d'exécuter

$ heroku ps:scale web=1

Cela garantira qu'un dyno web est en cours d'exécution. Quelque chose dans un déploiement précédent peut avoir provoqué une réduction de l'échelle.

 0
Author: codefinger, 2017-11-18 20:38:12