概要
Apache TomcatでCDIを使用できるようにするのは、pom.xmlを書いたり設定を行ったりしてめんどくさい。そこで今回はApache OpenWebBeansを使用して簡単にCDIを使用できるようにしていこうと思う。
前提条件
- javaコマンドが使用できること
- Gitが使用できること
- eclipseが使用できること(できたら)
全体構成
/作業先/
├ Tomcat/
│ ├ apache-tomcat-9.0.22/
│ │ ├ bin/
│ │ │ ├ startup.bat
│ │ │ └ startup.sh
│ │ └ conf/
│ │ ├ Catalina/
│ │ │ └ localhost
│ │ │ └ Sample.xml
│ │ ├ context.xml
│ │ └ logging.properties
│ ├ current -> (/作業先/Tomcat/apache-tomcat-9.0.22/)
│ ├ openwebbeans-distribution-2.0.9
│ │ ├ install_owb_tomcat7.bat
│ │ └ install_owb_tomcat7.sh
│ ├ apache-tomcat-9.0.22
│ └ openwebbeans-distribution-2.0.9-binary.zip
└ quita
└ cdi-sample
└ WebContent
└ WEB-INF
└ beanse.xml
作業手順
-
今回作業を行うディレクトリを作成する。(以下、作業先)
-
作業先にTomcatディレクトリを作成する。
-
Apache TomcatをTomcatディレクトリにダウンロードし、解凍する。
-
バージョン変更時を考えcurrentリンクを作成する。
# Windowsの場合 mklink /j current apache-tomcat-9.0.22 # linuxの場合 ln -s apache-tomcat-9.0.22 ./current
-
【Windowsの場合実施】コンソールが文字化けしないようにするため、Apache Tomcat内にあるconf/logging.propertiesを変更する
logging.properties# 51行目付近 # 変更前 java.util.logging.ConsoleHandler.encoding = UTF-8 # 変更後 java.util.logging.ConsoleHandler.encoding = SJIS
-
Apache OpenWebBeansをTomcatディレクリにダウンロードし、解凍する。
-
Apache OpenWebBeans内にあるinstall_owb_tomcat7を実行する
# Windowsの場合 install_owb_tomcat7.bat ..\current # linuxの場合 install_owb_tomcat7.sh ../current
-
【Windowsの場合実施】Apache Tomcat内にあるconf/context.xmlの""タグ内にタグを追加し、以下のようにする
context.xml<Context> <!-- Default set of monitored resources. If one of these changes, the --> <!-- web application will be reloaded. --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource> <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> <!-- ↓追加したタグ --> <Listener className="org.apache.webbeans.web.tomcat7.ContextLifecycleListener"/> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> </Context>
-
作業先に以下のGitをクローンする
-
以下の内容のxmlをApache Tomcat内にあるconf/Catalina/localhostに作成する。
Sample.xml<Context path="/Sample" reloadable="true" docBase="/作業先/quita/cdi-sample/WebContent"> </Context>
-
Apache Tomcatのbin内にあるstartupを実行する
# Windowsの場合 startup.bat # linuxの場合 startup.sh
-
localhost:8080/Sample/SampleServlet にアクセスし、「Served at: 」と出力されることを確認する。
感想・まとめ
今回Apache OpenWebBeansを使用してApache TomcatでCDIを使用できるようにしてきた。Windowsの場合手作業が入るため少しめんどくさいがbat/shを実行すれば簡単にCDIを使用できるようになるのかなと思った。今回使用したソースはeclipseで作成してあるので、できる方はいろいろいじくってみるのもよいかもしれない。(eclipseで使用する場合は、ウィンドウ -> 設定 -> サーバー -> ランタイム環境 -> Tomcat9(Java11) -> 編集からTomcatインストールディレクトリを/作業先/Tomcat/currentに変更する)
間違い・問題等あったらコメントしてください。