#WildFlyを使ったアプリケーションサーバ環境構築
オープンソースアプリケーションサーバである「WildFly」を使用して、Webアプリケーションサーバの環境構築をしたときのメモです。
WildFlyをインストールし、簡単なWebアプリケーションでデータベースから取得したデータを表示することを最終的な目標としました。データベースにはMySQLを使用しました。
【参考】https://qiita.com/tama1/items/829be5aacd81637ae73a
##動作環境
OS:Widows 10 Professional 1809
JDK:12.0.1
MySQL:8.0
JDBCドライバ:mysql-connector-java-8.0.16.jar
WildFly:17.0.1.Final (Java EE Full & Web Distribution)
##WildFlyのインストール
①**【URL】https://wildfly.org/downloads/**
最新版であるwildfly-17.0.1.Final.zip
をダウンロードする。
②ダウンロードしたファイルを展開する。今回はCドライブ直下に展開した。
③wildfly-17.0.1.Final\bin\standalone.bat
を実行することで起動する。
④ブラウザを立ち上げ、"http://localhost:8080/" へアクセスする。
WildFlyトップページが表示されていればインストール成功。
##WildFly管理ユーザの追加
①wildfly-17.0.1.Final\bin\add-user.bat
を実行する。
②(a)ではManagement User:aを選択する。
続けてユーザー名/パスワードを入力する。
今回は**"wildfly/admin"とした。グループは空白でEnter、他のAS(WildFly)への接続はNoとした。
③WildFlyトップページからAdministration Console**へアクセスする。
設定したユーザー名/パスワードを入力することで管理画面が使用できる。
##JDBCドライバのデプロイ
Javaからデータベースを利用するためにMySQLのJDBCドライバのデプロイを行う。
デプロイの方法は以下の3通りある。
Ⅰ. deploymentフォルダに置く
Ⅱ. 管理画面からデプロイする
Ⅲ. モジュールとして登録する
①今回はⅠの方法でJDBCドライバをデプロイする。
ダウンロードしたJDBCドライバ⇩ ※MySQL 8.0のインストールに付属されている
mysql-connector-java-8.0.16.jar
をstandalone\deployment\
へコピーする。
②*.deployed
ファイルが作成されればデプロイ成功。
##データソースの設定
Javaからデータベースを利用するためのデータソースの設定を行う。
設定方法は以下の3通りある。
Ⅰ. Administration Consoleを使う
Ⅱ. standalone.xmlを編集する
Ⅲ. 管理CLI(jboss-cli)を使用する
①今回はⅠの方法でデータソースを設定する。Administration Consoleを開き、
Configuration
➡Subsystem
➡Datasource&Drivers
➡+
➡Add Datasource
➡MySQL
にチェック
➡Name
, JNDI Name
はデフォルトでOK (MySqlDS
, java:/MySqlDS
)
➡Driver Name
のプルダウンメニューから前項でデプロイしたJDBCドライバを選択する。
その他はデフォルトでOK。
➡Connection URL
にjdbc:mysql://localhost:3306/testdb?serverTimezone=JST
を入力する。
testdb
の部分は作成した任意のデータベース名を入力する。
データベースへアクセスするユーザー名/パスワードを入力する。
➡Test Connection
で成功したらOK。
③standalone\configuration\standalone.xml
の中身を確認する。MySqlDSが追加されている。
<subsystem xmlns="urn:jboss:domain:datasources:5.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:/MySqlDS" pool-name="MySqlDS">
<connection-url>jdbc:mysql://localhost:3306/testdb?serverTimezone=JST</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver>mysql-connector-java-8.0.16.jar</driver>
<security>
<user-name>test</user-name>
<password>test</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
</validation>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
##アプリケーションのデプロイ
デプロイ方法はJDBCのデプロイ方法と変わらない。