Comment déployer une application Java Servlet simple sur Heroku

Déployer une application Java simple sur Heroku

Après avoir récemment étudié le développement de Java Servlet, créé des applications simples dans l'environnement local et essayé, je voulais le donner au serveur, mais de nombreux articles de blog et explications sont dans Maven et Il y a beaucoup d'articles sur les applications qui utilisent Gradle etc., et j'avais des problèmes parce que je ne savais pas comment le faire quand je voulais juste déployer une simple application Servlet, alors je l'ai écrit moi-même quand j'avais un mémorandum.

1. Exportez l'application Servlet au format de fichier war

Dans l'environnement Eclipse, sélectionnez Exporter le fichier de projet dynamique dans le menu contextuel et exportez-le en tant que fichier War.

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

Sélectionnez la destination d'exportation comme destination et exportez vers n'importe quel répertoire.

2. Connectez-vous à Heroku avec CLI

Il est supposé que la CLI Heroku a été installée à l'avance. Pour l'installation, cliquez ici (https://devcenter.heroku.com/articles/getting-started-with-java#set-up)

$ heroku login

3. Créez une application sur Heroku

Je pense que cela peut provenir de la CLI ou de l'application Web Heroku.

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

Lors de la création à partir du Web, vous pouvez créer une application à partir du bouton Nouveau en haut à droite du tableau de bord.

4. Installez le plugin Java de Heroku

Si vous souhaitez déployer l'application Servlet avec le fichier War, téléchargez cette CLI.

$ heroku plugins:install java

5. Déployez l'application Servlet

Tapez la commande suivante.

$ heroku war:deploy <Chemin direct vers le fichier war> --app <Nom de l'application Heroku créé précédemment>

Les résultats suivants seront obtenus.

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/ est la destination de déploiement de l'application.

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

C'était affiché!

L'article de référence est le document officiel d'Heroku ci-dessous. https://devcenter.heroku.com/articles/war-deployment

Remarque: le chemin défini lors de l'exécution à partir d'Eclipse ne peut pas être utilisé sur un serveur autre que le serveur local.

À propos, lorsque j'ai essayé de me connecter à l'application que j'ai téléchargée sur le serveur ci-dessus, j'ai eu une erreur 404.

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

Je n'arrive pas à trouver l'écran de connexion. Le code pour «web.xml» et l'écran supérieur «index.jsp» à ce moment est le suivant.

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>Bienvenue sur le site d'achat</h1>
<p>Menu de connexion</p>
<form action="/ShoppingCart/Login" method="post">
<label for="userName">Nom d'utilisateur: </label><input type="text" name="userName">
<label for="pass">mot de passe: </label><input type="text" name="pass">
<input type="submit" value="submit">
</form>
</body>
</html>

La cause ici est que dans ʻindex.jsp, le chemin vers la classe de servlet a été spécifié avec le chemin / ShoppingCart / Login(pas de problème en le faisant depuis Eclipse sur le serveur local), mais ce n'est pas local. Si vous voulez accéder avec le même chemin sur le serveur de, changez le chemin enweb.xml comme suit, ou changez le chemin de destination de l'action de formulaire de ʻindex.jsp en / Login car le chemin change. besoin de le faire.

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

Comment déployer une application Java Servlet simple sur Heroku
Déployer des applications Web Java sur Heroku
Comment déployer une application kotlin (java) sur AWS Fargate
Comment déployer avec heroku
Déployer les applications JavaServlet localement dans Tomcat
Comment déployer une application qui référence un pot local à heroku
Comment déployer à partir d'une image Docker locale vers Heroku
[Java] Comment exécuter des tâches régulièrement
Comment déployer Laravel sur CentOS 7
Comment créer un conteneur Java
Comment déployer Bootstrap sur Rails
Déployez le fichier de guerre sur Heroku
Comment développer et enregistrer une application Sota en Java
Déployer des rails sur Docker vers heroku
Comment déployer l'application Rails sur AWS (résumé de l'article)
Comment créer un tableau Java
Comment faire fonctionner automatiquement un écran créé en Java sous Windows
Comment vérifier Java installé sur Mac
Comment créer un résumé de calendrier Java
Un mémorandum sur l'utilisation d'Eclipse
Étapes pour publier une application sur Heroku
[Introduction à Java] Comment écrire un programme Java
Comment changer de version de Java sur Mac
Comment créer un robot Discord (Java)
Déployer sur Heroku [Ruby on Rails] Débutant
Java: Comment envoyer des valeurs du servlet au servlet
Déployer un projet Eclipse basé sur Tomcat sur Heroku
[Java] Déployer une application Web créée avec Eclipse + Maven + Ontology avec Heroku
Comment créer une application avec un mécanisme de plug-in [C # et Java]
Déployez des applications Web Java sur Azure avec maven
Comment afficher une page Web en Java
Comment enregistrer des images sur Heroku dans S3 sur AWS
Connexion SSH au serveur d'applications avec heroku
Comment convertir un contrat de solidité en une classe de contrat Java
Remarquez comment restaurer Mysql déployé sur Heroku
Application Java CICS-Run - (1) Exécutez un exemple d'application simple
[Rails MySQL] Comment réinitialiser la base de données sur heroku
Comment créer un environnement Pytorch sur Ubuntu
[Java] Mémo sur la façon d'écrire la source
Comment déployer un système réalisé avec Java (démarrage Wicket-Spring) sur le serveur du campus
Étapes de déploiement sur Heroku
Mémo pour créer un environnement Servlet sur EC2 d'AWS
Créer une image docker pour exécuter une application Java simple
Comment créer un environnement Java en seulement 3 secondes
Comment exécuter l'application SpringBoot en tant que service
Comment passer d'Eclipse Java à un fichier SQL
Comment déployer Java sur AWS Lambda avec Serverless Framework
Comment utiliser la bibliothèque non standard Java sur IntelliJ IDEA
java: Comment écrire une liste de types génériques [Note]
[Java] Comment sortir de Janken (équivalent à paiza rang A)
Comment faire fonctionner JavaScript sur une page spécifique
Comment se connecter à ClearDB depuis Sequel Pro avec Heroku
Comment créer un URI de données (base64) en Java