Apache Tomcat is een open-source webserver en servletcontainer ontwikkeld door de Apache Software Foundation (ASF).
Tomcat implementeert de Java Servlet- en JavaServer Pages-specificaties van Oracle en biedt een pure Java HTTP-webserveromgeving waarin de Java-code kan worden uitgevoerd.
In deze tutorial leren we hoe we Docker en Tomcat kunnen combineren om een Tomcat “hello world”-applicatie te implementeren met Tomcat als container.
Vereisten:
Om de instructies en code uit deze zelfstudie succesvol te kunnen volgen en gebruiken, moet u ervoor zorgen dat u over het volgende beschikt:
- Docker Engine op uw hostcomputer geïnstalleerd
- Java JDK op uw machine geïnstalleerd om uw Java-code te testen (optioneel)
- Een teksteditor om de broncode en Docker-configuraties te bewerken
Als aan de gegeven vereisten is voldaan, kunnen we verder gaan en leren hoe we een Tomcat-app kunnen implementeren met Docker.
Trek de Tomcat-afbeelding in Docker
Gelukkig hoeven we geen basisimage te configureren die alle tools bevat om een Tomcat-applicatie uit te voeren. We kunnen eenvoudig de Tomcat-afbeelding van de Docker Hub gebruiken.
Om de afbeelding op te halen, kunnen we de opdracht als volgt uitvoeren:
$ havenarbeider trek kater
Maak een Hello World-applicatie
De volgende stap is het maken van de applicatie “Hello World”. Begin met het maken van een map om uw broncode op te slaan en navigeer naar de map.
$ mkdir Hallo Wereld && CD Hallo Wereld
Maak in de hoofdmap een webapp-map en maak daarin een WEB-INF-map.
Uw directorystructuur zou er als volgt uit moeten zien:
Hallo Wereld /└── webapp
└── WEB-INF
3 mappen, 0 bestanden
Navigeer vervolgens naar de WEB-INF-map en maak een “web.xml”-bestand met de volgende code:
< web applicatie xmlns = 'http://xmlns.jcp.org/xml/ns/javaee'
xmlns: xsi = 'http://www.w3.org/2001/XMLSchema-instance'
xsi: schemaLocatie = 'http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd'
versie = '4,0' >
< servet >
< servlet-naam > Hallo Wereld servlet-naam >
< servlet-klasse > Hallo WereldServlet servlet-klasse >
servet >
< servlet-mapping >
< servlet-naam > Hallo Wereld servlet-naam >
< URL-patroon >/ Hallo URL-patroon >
servlet-mapping >
web applicatie >
Sla het bestand op en sluit de editor.
Terug in uw terminalvenster maakt u een “HelloWorldServlet.java” aan in de map WEB-INF/classes.
$ mkdir klassen$ aanraken HalloWorldServlet.java
Voeg de inhoud van de applicatie toe zoals hieronder weergegeven:
importeer javax.servlet.http. * ;
importeer java.io. * ;
public class HelloWorldServlet breidt HttpServlet uit {
publieke leegte doGet ( HttpServletRequest-verzoek, HttpServletResponse-antwoord )
gooit ServletException, IOException {
respons.setContentType ( 'tekst/html' ) ;
PrintWriter uit = response.getWriter ( ) ;
uit.println ( '' ) ;
uit.println ( '
uit.println ( '
uit.println ( '
Hallo wereld!
' ) ;uit.println ( '