Vier Dinge, auf die Heroku-Anfänger bei der Bereitstellung von von Java erstellten Webanwendungen mit GitHub gestoßen sind

Trigger Ich hatte meine eigene Webanwendung auf GitHub, "Ich möchte es in einem bewegenden Zustand veröffentlichen!" Das war der Grund, warum ich das spürte.

Verschiedene Brillen "Es sieht so aus, als ob Heroku verwendet werden kann." Ich fand das heraus und beschloss, es nach dem Studium einzusetzen.

Quelle: https://github.com/ShandyGaffLover/sample001

Prämisse ・ Heroku zum ersten Mal ・ Java, Git, Maven sind erfahren ・ GitHub-Konto erstellt

Was ich getan habe Heroku-Konto erstellen ⇒ GitHub-Integration Ich konnte es relativ reibungslos machen, während ich gegoogelt habe.

Die Artikel, auf die ich mich bezog, lauten wie folgt: Ich habe Heroku ausprobiert, das Webanwendungen kostenlos veröffentlichen kann - Qiita https://qiita.com/fkooo/items/0365b50d4534a236dcb2

Heroku Usage Note (Java) -Qiita https://qiita.com/opengl-8080/items/9dc9243c4e68cd0674f8

Stolpern

① "Ich kenne die Sprache der App nicht" und es wird kein erstellt

Phänomen Nach Auswahl des zu verknüpfenden Repositorys und des zu implementierenden Zweigs wurde beim Drücken der Schaltfläche "Zweig bereitstellen" die Meldung "Für diese App konnte keine Standardsprache erkannt werden" angezeigt.

builderror.png

Ursache Weil Buildpack nicht gesetzt ist.

Korrespondenz Klicken Sie unten auf der Registerkarte "Einstellungen" auf "Build Pack hinzufügen" und wählen Sie "Heroku / Java" aus, um es hinzuzufügen.

Ergebnis Als ich erneut auf die Schaltfläche "Zweig bereitstellen" drückte, trat der Erstellungsfehler weiterhin wie unten gezeigt auf.

wherepomis.png

② "pom.xml kann nicht gefunden werden" und wird nicht erstellt

Phänomen Nachdem Sie auf ① geantwortet haben und die Schaltfläche "Zweig bereitstellen" erneut gedrückt wurde, wurde "pom.xml-Datei konnte nicht gefunden werden! Überprüfen Sie, ob sie vorhanden ist und für Git festgeschrieben ist" angezeigt.

Ursache Weil pom.xml nicht direkt unter dem Repository existiert.

Da ich das sample001-Projekt ursprünglich unter dem Schulungsrepository erstellt habe, befand sich pom.xml im Speicherort training / sample001 / pom.xml. Anscheinend können Sie an diesem Ort nicht für Heroku bereitstellen.

  • Es gab ein ähnliches Beispiel. Heroku: Ich war süchtig nach dem Buildpack-Fehler-Qiita https://qiita.com/arekore0/items/eae550bdbcc78eeac082

Korrespondenz Ich habe ein neues Repository sample001 erstellt, pom.xml direkt darunter platziert und die Quelle verschoben.

Ergebnis Als ich erneut auf die Schaltfläche "Zweig bereitstellen" drückte, war der Build wie unten gezeigt erfolgreich. Du hast es geschafft!

buildsuccess.png

Ich dachte ... für einen Moment

apperror.png

Wenn ich auf die URL zugreife, wird ein Anwendungsfehler angezeigt ...

③ Der Webprozess wird nach der Bereitstellung nicht ausgeführt

Phänomen Klicken Sie nach erfolgreicher Bereitstellung auf die Schaltfläche "Anzeigen", um auf die Anwendungs-URL zuzugreifen. Ein Bildschirm mit der Benachrichtigung über Anwendungsfehler wird angezeigt. Wenn Sie sich auf das Protokoll beziehen, wird es wie folgt angezeigt.
2018-12-06T07:09:36.166348+00:00 heroku[router]: at=error code=H14 desc="No web processes running" 

Ursache Die Webanwendung wird nicht ausgeführt, ohne dass die Procfile erstellt wurde. [^ 1] [^ 1]: Ich bin mir nicht so sicher, ob dieser Japaner technisch korrekt ist. Jeder, der mit der Beziehung zwischen Procfile und bereitgestellten Assets vertraut ist, würde es begrüßen, wenn Sie auf Fehler hinweisen könnten.

Korrespondenz Beziehen Sie sich auf Folgendes: (1) Erstellen Sie ein Procfile und (2) fügen Sie dem Plugin von pom.xml einen Webapp-Runner hinzu. Deploying Tomcat-based Java Web Applications with Webapp Runner | Heroku Dev Center https://devcenter.heroku.com/articles/java-webapp-runner#deploy-your-application-to-heroku

Ergebnis ![apperror.png](https://qiita-image-store.s3.amazonaws.com/0/322008/7147b541-4dc2-9820-d0fb-7ef3eddaf975.png)

Der Anwendungsfehler wird weiterhin angezeigt. Ja, warum ...

④ "Kriegsdatei existiert nicht" wird im Protokoll angezeigt

Phänomen Wenn nach der Beantwortung von (3) die Bereitstellung erfolgreich ist und die Schaltfläche "Anzeigen" gedrückt wird, um auf die Anwendungs-URL zuzugreifen, wird ein Bildschirm mit der Meldung "Anwendungsfehler" angezeigt. Wenn Sie sich auf das Protokoll beziehen, wird es wie folgt angezeigt.
2018-12-06T10:51:25.163976+00:00 app[web.1]: The specified path "target/*.war" does not exist.

Ich war verwirrt, weil ich die Ursache zuerst nicht kannte [^ 2], aber in den meisten Fällen ist die Ursache oft schlecht.

Ursache Weil das Verpacken von pom.xml nicht beschrieben wurde.

Korrespondenz Geben Sie "Krieg" für die Verpackung in pom.xml an.

Ergebnis Erfolgreiche Bereitstellung!

Zusammenfassung Folgendes sollte beachtet werden, wenn Heroku zum ersten Mal verwendet wird. (1) Buildpack-Einstellungen sind erforderlich. (2) Für Java ist es erforderlich, pom.xml direkt unter dem Repository zu platzieren. ③Procfile ist erforderlich.

Ich hatte Angst, dass ich vergessen habe, "war" in von pom.xml anzugeben. Es tut mir Leid. [^ 2] [^ 2]: Warum hat es mit dem lokalen Tomcat funktioniert?

Recommended Posts

Vier Dinge, auf die Heroku-Anfänger bei der Bereitstellung von von Java erstellten Webanwendungen mit GitHub gestoßen sind
Stellen Sie eine Java-Web-App für Heroku bereit
[Java] Stellen Sie eine mit Eclipse + Maven + Ontology mit Heroku erstellte Webanwendung bereit
Dinge, die Sie häufig bei der Webentwicklung mit Java verwenden
Ich habe ein PDF mit Java erstellt.
Das erste, was Sie tun müssen, wenn Sie mit Heroku auf GitHub mit Eclipse auf Java zufrieden sein möchten
Bei der Suche nach mehreren in einem Java-Array
Erstellen Sie eine TODO-App in Java 7 Create Header
Lassen Sie uns eine Taschenrechner-App mit Java erstellen
Teilen Sie eine Zeichenfolge in Java mit ". (Dot)"
Versuchen Sie es mit der Ressourcenanweisung in der Web-App
Lesen Sie eine Zeichenfolge in einer PDF-Datei mit Java
Erstellen Sie eine CSR mit erweiterten Informationen in Java
Stellen Sie Java-Webanwendungen mit maven in Azure bereit
So zeigen Sie eine Webseite in Java an
Ein Hinweis, wenn Sie Tupel in Java möchten
Lassen Sie uns mit Java ein supereinfaches Webframework erstellen
Erstellen wir eine TODO-Anwendung mit Java 11-Ausnahmebehandlung, wenn Sie mit einer nicht vorhandenen ID auf TODO zugreifen