Vier Dinge, auf die Heroku-Anfänger bei der Bereitstellung von von Java erstellten Webanwendungen mit GitHub gestoßen sind
Trigger h1>
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 h1>
・ Heroku zum ersten Mal
・ Java, Git, Maven sind erfahren
・ GitHub-Konto erstellt
Was ich getan habe h1>
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 h1>
① "Ich kenne die Sprache der App nicht" und es wird kein h2> erstellt
Phänomen h3>
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.
Ursache h3>
Weil Buildpack nicht gesetzt ist.
Korrespondenz h3>
Klicken Sie unten auf der Registerkarte "Einstellungen" auf "Build Pack hinzufügen" und wählen Sie "Heroku / Java" aus, um es hinzuzufügen.
Ergebnis h3>
Als ich erneut auf die Schaltfläche "Zweig bereitstellen" drückte, trat der Erstellungsfehler weiterhin wie unten gezeigt auf.
② "pom.xml kann nicht gefunden werden" und wird nicht erstellt h2>
Phänomen h3>
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 h3>
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 h3>
Ich habe ein neues Repository sample001 erstellt, pom.xml direkt darunter platziert und die Quelle verschoben.
Ergebnis h3>
Als ich erneut auf die Schaltfläche "Zweig bereitstellen" drückte, war der Build wie unten gezeigt erfolgreich. Du hast es geschafft!
Ich dachte ... für einen Moment
Wenn ich auf die URL zugreife, wird ein Anwendungsfehler angezeigt ...
③ Der Webprozess wird nach der Bereitstellung nicht ausgeführt h2>
Phänomen h3>
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 h3>
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 h3>
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 h3>
![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 h2> angezeigt
Phänomen h3>
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 h3>
Weil das Verpacken von pom.xml nicht beschrieben wurde.
Korrespondenz h3>
Geben Sie "Krieg" für die Verpackung in pom.xml an.
Ergebnis h3>
Erfolgreiche Bereitstellung!
Zusammenfassung h1>
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?