So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit

Stellen Sie eine einfache Java-App für Heroku bereit

Nachdem ich kürzlich die Java-Servlet-Entwicklung studiert, einige einfache Apps in der lokalen Umgebung erstellt und ausprobiert hatte, wollte ich sie dem Server geben, aber viele Blog-Artikel und Erklärungen sind in Maven und Es gibt viele Artikel über Apps, die Gradle usw. verwenden, und ich hatte Probleme, weil ich nicht wusste, wie es geht, als ich nur eine einfache Servlet-App bereitstellen wollte. Deshalb habe ich es selbst geschrieben, als ich ein Memorandum hatte.

1. Exportieren Sie die Servlet-Anwendung im War-Dateiformat

Wählen Sie in der Eclipse-Umgebung im Kontextmenü die Option Dynamische Projektdatei exportieren aus und exportieren Sie sie als War-Datei.

スクリーンショット 2020-07-18 12.29.00.png

Wählen Sie das Exportziel als Ziel und exportieren Sie es in ein beliebiges Verzeichnis.

2. Melden Sie sich mit CLI bei Heroku an

Es wird davon ausgegangen, dass die Heroku-CLI im Voraus installiert wurde. Klicken Sie hier zur Installation (https://devcenter.heroku.com/articles/getting-started-with-java#set-up).

$ heroku login

3. Erstellen Sie eine App auf Heroku

Ich denke, dies kann entweder von der CLI oder von Herokus Webanwendung stammen.

スクリーンショット 2020-07-18 12.37.15.png

Beim Erstellen aus dem Web können Sie eine App über die Schaltfläche Neu oben rechts im Dashboard erstellen.

4. Installieren Sie das Java-Plugin von Heroku

Wenn Sie die Servlet-App mit der War-Datei bereitstellen möchten, laden Sie diese CLI herunter.

$ heroku plugins:install java

5. Stellen Sie die Servlet-App bereit

Geben Sie den folgenden Befehl ein.

$ heroku war:deploy <Direkter Pfad zur Kriegsdatei> --app <Heroku-App-Name früher erstellt>

Sie erhalten die folgenden Ergebnisse.

8.5.57/webapps/App/ShoppingCart.war --app shoppingcartjava
 ›   Warning: heroku update available from 7.35.1 to 7.42.4.
Uploading ShoppingCart.war
-----> Packaging application...
       - app: shoppingcartjava
       - including: webapp-runner.jar
       - including: ShoppingCart.war
-----> Creating build...
       - file: slug.tgz
       - size: 21MB
-----> Uploading build...
       - success
-----> Deploying...
remote: 
remote: -----> heroku-deploy app detected
remote: -----> Installing JDK 1.8... done
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote: 
remote: -----> Compressing...
remote:        Done: 72.3M
remote: -----> Launching...
remote:        Released v3
remote:        https://shoppingcartjava.herokuapp.com/ deployed to Heroku
remote: 
-----> Done

https://shoppingcartjava.herokuapp.com/ ist das Ziel für die Bereitstellung der App.

スクリーンショット 2020-07-18 12.46.06.png

Es wurde angezeigt!

Der Referenzartikel ist der offizielle Doc von Heroku unten. https://devcenter.heroku.com/articles/war-deployment

Hinweis: Der beim Ausführen von Eclipse festgelegte Pfad kann nicht auf einem anderen als dem lokalen Server verwendet werden.

Übrigens, als ich versuchte, mich bei der App anzumelden, die ich oben auf den Server hochgeladen habe, bekam ich einen 404-Fehler.

スクリーンショット 2020-07-20 20.46.13.png

Ich kann den Anmeldebildschirm nicht finden. Der Code von web.xml und der oberste Bildschirm index.jsp lautet zu diesem Zeitpunkt wie folgt.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>ShoppingCart</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>Login</display-name>
    <servlet-name>Login</servlet-name>
    <servlet-class>servlet.Login</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/Login</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ShopMain</display-name>
    <servlet-name>ShopMain</servlet-name>
    <servlet-class>servlet.ShopMain</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ShopMain</servlet-name>
    <url-pattern>/ShopMain</url-pattern>
  </servlet-mapping>
</web-app>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Willkommen auf der Einkaufsseite</h1>
<p>Anmeldemenü</p>
<form action="/ShoppingCart/Login" method="post">
<label for="userName">Nutzername: </label><input type="text" name="userName">
<label for="pass">Passwort: </label><input type="text" name="pass">
<input type="submit" value="submit">
</form>
</body>
</html>

Die Ursache hierfür ist, dass in index.jsp der Pfad zur Servlet-Klasse durch den Pfad / ShoppingCart / Login angegeben wurde (es gibt kein Problem, wenn dies von Eclipse auf dem lokalen Server aus erfolgt), aber nicht lokal. Wenn Sie den Zugriff mit demselben Pfad auf Ihrem Server erreichen möchten, ändern Sie den Pfad wie folgt in "web.xml" oder den Zielpfad für Formularaktionen von "index.jsp" in "/ Login". müssen es tun.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>ShoppingCart</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>Login</display-name>
    <servlet-name>Login</servlet-name>
    <servlet-class>servlet.Login</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/ShoppingCart/Login</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ShopMain</display-name>
    <servlet-name>ShopMain</servlet-name>
    <servlet-class>servlet.ShopMain</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ShopMain</servlet-name>
    <url-pattern>/ShoppingCart/ShopMain</url-pattern>
  </servlet-mapping>
</web-app>

Recommended Posts

So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit
Stellen Sie eine Java-Web-App für Heroku bereit
So stellen Sie eine Kotlin (Java) -App auf AWS fargate bereit
Wie man mit Heroku einsetzt
Stellen Sie JavaServlet-Apps lokal in Tomcat bereit
So stellen Sie eine App bereit, die ein lokales Glas auf Heroku verweist
Bereitstellen von einem lokalen Docker-Image auf Heroku
[Java] Wie man Aufgaben regelmäßig ausführt
So stellen Sie Laravel für CentOS 7 bereit
So erstellen Sie einen Java-Container
So stellen Sie Bootstrap auf Rails bereit
Stellen Sie die Kriegsdatei auf Heroku bereit
So entwickeln und registrieren Sie eine Sota-App in Java
Stellen Sie Rails on Docker für Heroku bereit
So stellen Sie die Rails-Anwendung in AWS bereit (Artikelzusammenfassung)
So erstellen Sie ein Java-Array
So bedienen Sie automatisch einen in Java unter Windows erstellten Bildschirm
So überprüfen Sie, ob Java auf einem Mac installiert ist
So erstellen Sie eine Java-Kalenderzusammenfassung
Ein Memorandum zur Verwendung von Eclipse
Schritte zum Veröffentlichen einer Anwendung auf Heroku
[Einführung in Java] So schreiben Sie ein Java-Programm
So wechseln Sie Java-Versionen auf dem Mac
Wie erstelle ich einen Discord Bot (Java)
Bereitstellen für Heroku [Ruby on Rails] Anfänger
Java: So senden Sie Werte von Servlet zu Servlet
Stellen Sie ein Tomcat-basiertes Eclipse-Projekt für Heroku bereit
[Java] Stellen Sie eine mit Eclipse + Maven + Ontology mit Heroku erstellte Webanwendung bereit
So erstellen Sie eine App mit einem Plug-In-Mechanismus [C # und Java]
Stellen Sie Java-Webanwendungen mit maven in Azure bereit
So zeigen Sie eine Webseite in Java an
So speichern Sie Bilder auf Heroku in S3 unter AWS
SSH-Login beim App-Server mit Heroku
So konvertieren Sie einen Soliditätsvertrag in eine Java-Vertragsklasse
Beachten Sie, wie Sie auf Heroku bereitgestelltes MySQL zurücksetzen können
CICS-Java-Anwendung ausführen- (1) Führen Sie eine einfache Beispielanwendung aus
[Rails MySQL] So setzen Sie die Datenbank auf Heroku zurück
So erstellen Sie eine Pytorch-Umgebung unter Ubuntu
[Java] Memo zum Schreiben der Quelle
So stellen Sie ein mit Java erstelltes System (Wicket-Spring-Boot) auf dem Campus-Server bereit
Schritte zur Bereitstellung in Heroku
Memo zum Erstellen einer Servlet-Umgebung auf EC2 von AWS
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So führen Sie die SpringBoot-App als Dienst aus
So springen Sie von Eclipse Java zu einer SQL-Datei
So stellen Sie Java mit Serverless Framework für AWS Lambda bereit
Verwendung der nicht standardmäßigen Java-Bibliothek in IntelliJ IDEA
java: Wie schreibe ich eine generische Typliste? [Hinweis]
[Java] Wie man aus Janken rauskommt (entspricht Paiza Rang A)
So funktioniert JavaScript auf einer bestimmten Seite
So stellen Sie mit Heroku eine Verbindung zu ClearDB von Sequel Pro her
So erstellen Sie einen Daten-URI (base64) in Java