resinインストールからMYSQLアクセスまで

Linux

JAVA初心者による記録です。
幾度かresinを利用したMYSQLにアクセスるjavaプログラムを作成したが、パソコンの内臓ディスク障害により情報が紛失した。
思い出しながら、resinインストールから動作確認、JDBC設定、MYSQLへのアクセスまでの一連の作業を記載する。

resinをインストールする。

ソースファイルをダウンロードする。

https://caucho.com/products/resin/downloadからソースファイルをダウンロードする。
無料版をダウンロードする。
resin-4.0.66.tar.gzはmakeが失敗するので、新しいバージョンをダウンロードする必要がある。

configureが失敗した。

以下のエラーになったらjavaの開発パッケージ(devel)がインストールされていないのでインストールしてください。

 

インストールされているjavaパッケージを確認する。

やはりjava-17-openjdk-develがインストールされていない。

 

java-17-openjdk-develをインストールする。

 

configureとmakeとinstallを実行する。

 

javaの環境変数を設定する。

JAVA_HOME変数やRESIN_HOME変数を設定する。

 

resinを起動する。

rootユーザでインストールすると、resinの起動と停止を行うシェルが以下にインストールされる。
  /etc/rc.d/resin
resinを起動する。

javaプロセスが起動されている。

resinの動作を確認する。

ポート番号8080にアクセスして、resinのデフォルト・ホーム・ページが表示される事を確認する。
     http://<IPアドレス>:8080/
※ポート番号を変更する場合は、conf/resin.propertiesファイルのポート番号を変更する必要がある。

nginx経由でresinにアクセス

javaプログラムをnginx経由でresinにアクセスして実行させる。

nginxにproxyを設定する。

location ~ ^/api/.*$
  ・/api/にアクセスされたら、/api/を削除してresinに転送して処理させる。
location /resin-admin/
  ・resin summary(resin管理画面)を表示させるため、resinに転送して処理させる。
  ・インターネットからアクセスできるため、認証処理を定義する。
       ※インターネットからアクセスすると他の画面に遷移できない。proxyの設定が間違っていると思うが、インターネットからアクセスすることは無いと思われるためそのままとする。
location /resin-doc/
  ・resinのドキュメントを表示するため、resinに転送して処理させる。

 

proxyの動作を確認する。

nginxのproxy設定によりresinにアクセスしてresin-docを表示する。
  http://<nginxアクセスのIPアドレス>/resin-doc/

 

javaプログラムでhello world表示

javaソースファイルを記述して、「hello world!」をブラウザに表示させる。

javaプログラムを実行環境のweb.xmlファイルを作成する。

web.xmlファイルを作成する。
/helloにアクセスされたら、/test/HelloServletクラスを実行する定義を記述する。
・<servlet-class>に実行するJAVAのクラスファイルの「test.HelloServlet」を記述する。
・<url-pattern>にJAVAクラスファイルを実行するアクセス先のURLを記述する。

 

javaソースを作成する。

resinのドキュメントのソースファイルを記載する。
「Hello, world!」を表示するjavaプログラムソースを作成する。
package名test内にHelloServletクラスが有る記述のため以下のパスにソースファイルを作成する。
/usr/local/resin/webapps/ROOT/class/test/HelloServlet.java

 

resinを再起動する。

ビルドされた実行ファイルを実行可能な環境に配置し、実行できるようにする(デプロイ)ためresinを再起動する。
※約2分待てば、自動的にデプロイが実行されるが、すぐに確認したいためresinを再起動してデプロイを実行させる。

 

javaアプリにアクセスる。

nginx経由でresinのjavaアプリにアクセスする。
   http://<nginxアクセスのIPアドレス>/api/hello

MYSQLにJAVAからアクセス

javaプログラムでMYSQLデータベースにアクセスしてテーブルの内容を表示する。

データベースのデータを確認する。

 

MYSQLドライバを入手する。

以下のurlからMYSQLのドライバ(mysql-connector-j-9.2.0-1.el9.noarch.rpm)を入手する。
  https://dev.mysql.com/downloads/connector/j/

MYSQLドライバをインストールする。

 

MYSQLドライバをresinが利用できる様に設定する。

mysqlドライバがresinのlibディレクトリに無いため、認識できる様にリンクを設定する。

 

resin-web.xmlについて

javaソースにデータベース情報を記載するためresin-xmlファイルは作成しない。

 

javaプログラムを実行環境のweb.xmlファイルを作成する。

/databaseselectにアクセスされたら、/DatabaseSelectクラスを実行する定義を記述する。

 

MYSQLにアクセスするソースを作成する。

MYSQLデータベースにアクセスするjavaプログラムソースを作成する。
package化していないため、以下のパスにソースファイルを作成する。
/usr/local/resin/webapps/ROOT/class/DatabaseSelect.java

 

resinを再起動する。

ビルドされた実行ファイルを実行可能な環境に配置し、実行できるようにする(デプロイ)ためresinを再起動する。

 

javaアプリにアクセスる。

nginx経由でresinのjavaアプリにアクセスする。
   http://<nginxアクセスのIPアドレス>/api/databaseselect



xmlファイルを利用してMYSQLにアクセスする

resin-web.xmlファイルにデータベース情報を記述して、アクセスする。

resin-web.xmlを作成する。

resin-web.xmlに、<database>や<driver>などを定義する。

 

MYSQLにアクセスするソースを作成する。

InitialContextを使用して、jdbc/mysqlというJNDI名でデータソースを取得します。

 

差分を比較する。

 

web.xmlファイルを修正する。

web.xmlファイルを修正して、URLとclassファイルを関連付けます。

 

javaアプリにアクセスる。

nginx経由でresinのjavaアプリにアクセスする。
   http://<nginxアクセスのIPアドレス>/api/databaseselect2

結果は、javaソースにデータベースの情報を記述した時と同様です。

 

データベースにアクセスするパスワードの暗号化

安全のためにパスワードを暗号化しようと思ったが、暗号化はResin Proでないとダメ見たいです。

 

まとめ

意外と簡単にMYSQLデータベースにアクセスするjavaプログラムが作成できた。インターネットのおかげである。
再度、パソコンの内臓ディスクが壊れた場合を考えての記録ですが、皆さんの参考になれば幸いです。