この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
最初に
先日、Jbossの環境をインストールして、Hello World プログラムを実行できるように紹介しました。
本日、その上でRDSを作成し、接続確認できるように紹介します。
RDS MySQL作成
Amazon RDS MySQL データベースを作成するステップを省略します。
下記AWSのドキュメントをご参照ください。
https://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/customizing-rds-connect-create.html
テスト用環境作成
1.MySQLインストール
RDS作成完了してから、テスト用環境作成します。
先ず、RHEL8.7でMySQL8.0をインストールします。
$ sudo dnf install mysql
2.RDS接続
以下のコマンドを実行して、MySQLクライアントから、RDS に接続
$ mysql -u admin -p -h jboss-rds.cowupzjjocwm.ap-northeast-1.rds.amazonaws.com
3.テスト用テーブルを作成
以下のコマンドを実行して、テスト用テーブルを作成し、テストデータを入れます。
mysql> use testdb;
mysql> CREATE TABLE test_table (id INT, name CHAR(10));
mysql> INSERT INTO test_table (id,name) VALUES (1, 'test01');
mysql> INSERT INTO test_table (id,name) VALUES (2, 'test02');
JDBCドライバインストール
1.JDBC Driverダウンロード
/tmpにJDBC Driverをダウンロードする
AWS JDBC Driverをダウンロードする for MySQL – v1.1.9
https://github.com/awslabs/aws-mysql-jdbc/releases
2.JDBCドライバ配置
JDBCドライバの aws-mysql-jdbc-1.1.7.jar ファイルを以下に配置する。
$ sudo cp -p /work/aws-mysql-jdbc-1.1.7.jar /opt/EAP-7.2.0/
$ sudo cp -p /work/aws-mysql-jdbc-1.1.7.jar /usr/share/java/
3.Jboss管理CLI起動
以下のコマンドを実行して、管理 CLI を起動する。なお、以後の作業は管理 CLI から実行する。
$ sudo /opt/EAP-7.2.0/bin/jboss-cli.sh --connect
4.プロンプト表示確認
管理CLIのプロンプトが表示されることを確認
[standalone@localhost:9990 /] /core-service=server-environment:read-attribute(name=initial-running-mode)
{
"outcome" => "success",
"result" => "NORMAL"
}
5.JDBCドライバー追加
以下のコマンドを管理CLIから実行して、JDBC ドライバーをコアモジュールとして追加する。
[standalone@localhost:9990 /] module add --name=com.mysql --resources=/usr/share/java/aws-mysql-jdbc-1.1.7.jar --dependencies=javax.api,javax.transaction.api
6.JDBCドライバー登録
以下のコマンドを管理CLIから実行して、JDBC ドライバーを登録する。
[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=software.aws.rds.jdbc.mysql.Driver:add(driver-name=software.aws.rds.jdbc.mysql.Driver,driver-module-name=com.mysql)
{"outcome" => "success"}
7.データソース作成
以下のコマンドを管理CLIから実行して、データソースを作成する。
[standalone@localhost:9990 /] data-source add --name=MySqlDS --jndi-name=java:jboss/MySqlDS --enabled=true --driver-name=software.aws.rds.jdbc.mysql.Driver --connection-url=jdbc:mysql:aws://jboss-rds.cowupzjjocwm.ap-northeast-1.rds.amazonaws.com:3306/testdb --user-name=admin --password=1qaz2wsx!
8.JBossリロード
以下のコマンドを管理CLIから実行して、JBossをリロードする。
[standalone@localhost:9990 /] reload
9.RDS接続確認
以下のコマンドを管理CLIから実行して、RDSの接続確認を行う。
[standalone@localhost:9990 /] /subsystem=datasources/data-source=MySqlDS:test-connection-in-pool
{
"outcome" => "success",
"result" => [true]
}
DBアクセス確認用WARファイル作成
1.jsp ファイル作成
DBアクセス確認用 jsp ファイルを作成する
sudo vi /tmp/web-app/src/main/webapp/rds_access.jsp
ソース
<%@page contentType="text/html; charset=UTF-8"%>
<%@page import="javax.naming.*" %>
<%@page import="javax.sql.*" %>
<%@page import="java.sql.*" %>
<html>
<body>
test table contents<br>
<%
Context context = new InitialContext();
DataSource dataSource =(DataSource)context.lookup("java:jboss/MySqlDS");
try(Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement("select NAME from test_table");
ResultSet resultSet = preparedStatement.executeQuery()){
while(resultSet.next()){
out.print(resultSet.getString("NAME"));
out.print("<br>");
}
}
%>
</body>
</html>
2.WARファイル作成
以下のコマンドを実行して、WARファイルを作成する。
$ cd /tmp/web-app
$ mvn clean install
3.WARファイルデプロイ
※WARファイルをstandalone/deployments にコピーし、デプロイを行う。
$sudo cp -p /tmp/web-app/target/web-app.war /opt/EAP-7.2.0/standalone/deployments/
4.動作確認
以下のコマンドを実行して、テスト用テーブルからデータを取得するJSPの動作確認を行う。
curl http://localhost:8080/web-app/rds_access.jsp
以下が表示されれば正常終了
<html>
<body>
test table contents<br>
test01<br>test02<br>
</body>
</html>
ブラウザでアクセスしてみます。
問題なくアクセスできました。
最後に
以上です。
どなたかの参考になれば幸いです〜。