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.
Dans l'environnement Eclipse, sélectionnez Exporter le fichier de projet dynamique dans le menu contextuel et exportez-le en tant que fichier War.
Sélectionnez la destination d'exportation comme destination et exportez vers n'importe quel répertoire.
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
Je pense que cela peut provenir de la CLI ou de l'application Web Heroku.
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.
Si vous souhaitez déployer l'application Servlet avec le fichier War, téléchargez cette CLI.
$ heroku plugins:install java
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.
C'était affiché!
L'article de référence est le document officiel d'Heroku ci-dessous. https://devcenter.heroku.com/articles/war-deployment
À 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.
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 en
web.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