LoginSignup
4
1

More than 3 years have passed since last update.

[Apache Tomcat] Apache OpenWebBeansをつかってCDIを使えるようにした話

Last updated at Posted at 2019-07-27

概要

Apache TomcatでCDIを使用できるようにするのは、pom.xmlを書いたり設定を行ったりしてめんどくさい。そこで今回はApache OpenWebBeansを使用して簡単にCDIを使用できるようにしていこうと思う。

前提条件

  1. javaコマンドが使用できること
  2. Gitが使用できること
  3. 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

作業手順

  1. 今回作業を行うディレクトリを作成する。(以下、作業先)

  2. 作業先にTomcatディレクトリを作成する。

  3. Apache TomcatをTomcatディレクトリにダウンロードし、解凍する。

  4. バージョン変更時を考えcurrentリンクを作成する。

    # Windowsの場合
    mklink /j current apache-tomcat-9.0.22
    
    # linuxの場合
    ln -s apache-tomcat-9.0.22 ./current
    
  5. 【Windowsの場合実施】コンソールが文字化けしないようにするため、Apache Tomcat内にあるconf/logging.propertiesを変更する

    logging.properties
    # 51行目付近
    # 変更前
    java.util.logging.ConsoleHandler.encoding = UTF-8
    # 変更後
    java.util.logging.ConsoleHandler.encoding = SJIS
    
  6. Apache OpenWebBeansをTomcatディレクリにダウンロードし、解凍する。

  7. Apache OpenWebBeans内にあるinstall_owb_tomcat7を実行する

    # Windowsの場合
    install_owb_tomcat7.bat ..\current
    
    # linuxの場合
    install_owb_tomcat7.sh ../current
    
  8. 【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>
    
  9. 作業先に以下のGitをクローンする

  10. 以下の内容のxmlをApache Tomcat内にあるconf/Catalina/localhostに作成する。

    Sample.xml
    <Context path="/Sample" reloadable="true" docBase="/作業先/quita/cdi-sample/WebContent">
    </Context>
    
  11. Apache Tomcatのbin内にあるstartupを実行する

    # Windowsの場合
    startup.bat
    
    # linuxの場合
    startup.sh
    
  12. localhost:8080/Sample/SampleServlet にアクセスし、「Served at: 」と出力されることを確認する。

感想・まとめ

 今回Apache OpenWebBeansを使用してApache TomcatでCDIを使用できるようにしてきた。Windowsの場合手作業が入るため少しめんどくさいがbat/shを実行すれば簡単にCDIを使用できるようになるのかなと思った。今回使用したソースはeclipseで作成してあるので、できる方はいろいろいじくってみるのもよいかもしれない。(eclipseで使用する場合は、ウィンドウ -> 設定 -> サーバー -> ランタイム環境 -> Tomcat9(Java11) -> 編集からTomcatインストールディレクトリを/作業先/Tomcat/currentに変更する)

間違い・問題等あったらコメントしてください。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1