普段ほとんど触っていないJSPの対応が突然舞い込んだ際、まず何をすれば良いかに迷ったためメモとして残します
使うもの
- Docker
- Docker Compose
手順
- docker-compose.ymlを用意する
- TomcatのDocker公式イメージを指定する
- webappsディレクトリをマウントしてTomcatのコンテナを起動する
- webappsディレクトリ配下にアプリケーション用のディレクトリを配置、JSPを置く
- 今回は
helloworld
にします
- 起動する
ディレクトリ構成
├── docker-compose.yml
└── webapps
└── `アプリケーション名`
├── WEB-INF
│ └── lib
│ └── `JSTLなどの必要なライブラリ`
└── index.jsp
1. docker-compose.ymlを用意する
- Tomcatのイメージは、Docker Hubにて公式イメージが公開されているので、その中から必要なものを選んで使います
docker-compose.yml
version: '3'
services:
tomcat:
image: tomcat:9.0.13-jre11-slim
volumes:
- ./webapps:/usr/local/tomcat/webapps
ports:
- 8080:8080
2. webappsディレクトリ配下にアプリケーション用のディレクトリを配置、JSPを置く
webapps/helloworld/index.jsp
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Hello, world!</title>
</head>
<body>
<h1><%= "Hello, world!" %></h1>
</body>
</html>
3. 起動する
- docker-compose.ymlを配置したディレクトリに戻って、
docker-compose up
を実行します -
localhost:8080/helloworld/index.jsp
にアクセスして動作確認出来ます
その他困ったこと
- JSTLの動かし方に迷ったのですが、Mavenで公開されているJSTLのjarを取ってきて、アプリケーション内の
WEB-INF/lib
に置いたら動きました-
jstl-1.2.jar
http://central.maven.org/maven2/javax/servlet/jstl/1.2/ -
jstl-impl-1.2.jar
http://central.maven.org/maven2/org/glassfish/web/jstl-impl/1.2/
-