Help us understand the problem. What is going on with this article?

JET (JakartaEE Toolkit) -- 5分でできるJakartaEE開発環境

 この投稿は"Jakarta EE+Payara server+NetBeansで開発しよう!"の第2回です

 JakartaEEのセットアップは、JDK、IDE、アプリケーションサーバーなど、いろいろ準備が必要で、なんといっても手間がかかります。そこで、ふと考えました。「あらかじめみんな集めてワンセットにしておけばどうだろう」と。そして、いろいろ試行錯誤して、作成してみたのが"JET (JakartaEE Toolkit)"です(今回は、Windows用ですが、Mac用もすぐに何とかする予定です)。可能な限りの設定を済ませてあるので、ダウンロードして解凍すると、それから5分以内にJakartEE開発を始められます。

 JETでは、Zipを解凍するだけでNetBeansが動きます(JDKは組み込んでいるので、インストール不要)。日本語化プラグインを入れてあるので、日本語化も済んでいます。簡単なサーバー連携の設定をするだけで、Payaraサーバーが使えます(Payara5を同梱しています)。Payara Serverには、MySQLとPostgreSQL、H2などのデータベースドライバを登録済みで、JDBCコネクションプールとJDBCリソース(データソース)も最初から登録されています。つまり、面倒なデータベース設定は不要で、すぐに使える状態になっています。

 また、NetBeansには、JSF用の新規Mavenプロジェクトを生成するBuilderプロジェクトが付いています(REST用には、元から付いているアーキタイプを使って、[新規プロジェクト]⇒[Maven]⇒[Webプロジェクト]で問題なし)。すぐに新規Maven-JSFプロジェクトを作成して、JakartaEE開発ができます。

 さらに、やはりアーキタイプでプロジェクトを生成したいという人のために、オリジナルなアーキタイプも作成しました。NetBeansプロジェクトファイルの形で添付しています。mvn clean install コマンドを実行することで、jakarta-ee-jsfアーキタイプを使用できます。後日、解説を掲載する予定ですから、それを読むと自分で改造もできますよ。

 ダウンロードJakartaEE Toolkit ver 0.90
 ダウンロード先は「わかりやすいJavaEE」のサポートウェブです。ダウンロードしたファイルの中に、簡単な使い方が入っているので、それを見て使ってみてください。また、わかりやすいJavaEEの例題(内容はEE7)をMavenプロジェクトに直したものもダウンロードできます。これらを試すのもよいでしょう。

◆データベースシステムは・・・

 H2データベース(Payaraのデフォルトのデータベース)は、Payara付属のバッチファイルから起動できます。MySQLやPostgrSQLなどは、それぞれインストールする必要があります。でも、開発用ですからね。いちいちインストールするのはやめて、Dockerを使う方が格段に簡単です。そもそも、インストール作業なんてないのですから。コマンドを一行タイプするだけで、データベースが使えるようになります。

◆Windows home でもDocker Desktopが動く

 ところで、DockerをWindowsで動かすには、Hyper-Vが必要なので、Winodow10 Proが必要です。homeでは動きません。Oracleが作ったツールで代用できますが、期待通りの働きをしてくれないことがあり、フラストレーションがたまります。

 ところがです。Windows10 homeの次のパージョンアップから、home版でもDockerが動くようになります!
Docker Desktop for Windows Home is here!

 なお、今すぐ使ってみたい場合は、Windows Insiderプログラムに参加してOSを更新し、Docker Desktop Edge 2.2.2.0をインストールすればOKです。

 これで、ほとんどのパソコンにDockerを使う環境が「ある」と前提して、話を進めることができるようになりました。自宅のWindowsがProではなく、homeだという人はかなりいるはず。本当に朗報でした。

Dockerを使ってMySQLを動かす

 そもそもDockerとは何か、ものすごく簡単にいうと「仮想Linuxマシン」製造機です。ポンポン作れます。しかも、最初からいろいろなサーバーセットが用意してあるという便利さ。コマンドを1行タイプするだけで、Dockerハブから自動的にダウンロードして、セットアップしてくれます。
 大体、サーバーを利用するだけなら、Linuxの知識すら不要です。Dockerで製造した仮想Linuxマシンの中のサーバーは、"localhost"として、自分のパソコンにインストールしたサーバーと同じに使えます。この簡単さはものすごくインパクトがありますね。

◆どうしたらDockerを使えるか

Docker Desktop for Windowsをダウンロードする
②ダウンロードファイルをダブルクリックしてインストールする
③デスクトップにDocker Desktopアイコンができるのでダブルクリックで起動する

◆そして、MySQLデータベースサーバーを使えるようにするには

Windows Power Shellを起動して、次のコマンドをタイプする
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=mysql8 -d -p 3306:3306 mysql:latest
powershell_mysql.gif
これでだけで、MySQLデータベースが起動した状態になります!
powershell_mysql_説明.gif
 
 なお、rootパスワードは、"mysql8"としておくと、JETの使用が簡単になります。違うものにした場合、Payara Serverに登録したJDBCコネクションプールで、Password属性を変更しなくてはいけません(Payaraの管理コンソールで、「JDBC接続プール」の中のmydb_poolを開き、「追加プロパティ」タブをクリックすると、画面上で変更できます)。

次のコマンドで、起動確認ができます。簡単ですね!
docker ps
なお、停止は
docker stop mysql8
起動は
docker start mysql8
です。
 Dockerコマンドの詳細は、@wMETAwさんのDocker コマンドチートシートなどを参考にするといいでしょう。

◆スキーマを作成する

 データベースを使うには、スキーマが必要です。つまり、データベースの構成を定義して、いろいろなテーブルや関係を入れることができるようにします。これはSQLコマンドで簡単に実行できます。mydbという名前でスキーマを作成しておくと、JETの利用が簡単になります。違った名前にすると、Payara Serverに登録してある「JDBC接続プール」で、DatabaseName属性の変更が必要になります(変更方法はパスワードと同じ)。

①mysql8コンテナのベースになっている仮想Liuxシステムで、
 bashシェル(コマンドプロンプト的なもの)を起動する
docker exec -it mysql8 bash
docker_create_schema_01.gif
②bashプロンプトからMySQLモニタ(MySQLにSQLを発行できる)を起動する
mysql -u root -pmysql8  ※pとmysql8は離さない
docker_create_schema_02.gif
③スキーマmydbを作成するためのSQLを発行した後、元の画面に戻る
CREATE SCHEMAmydbDEFAULT CHARACTER SET utf8 ;
docker_create_schema_03.gif
※exit; をタイプしてbashに戻り、exitをタイプしてPowerShellに戻る

DockerとNetBeansの連携

MySQLが起動していることを、NetBeansから確認し、さらに停止したり、起動したりできます。

<手順>
①タスクバーで、Dockerアイコンをクリックする
docker-setting-1.gif
②ポップアップメニューで[Settigs]を選択する
③[Expose daemon on tcp://localhost:2375 without TLS]にチェックを入れる
④[Applay & Restart]を押す
<注意>念のために、②のメニューで、もう一度[Restart...]をクリックすると確実です
⑤(起動していなければ)NetBeansを起動する
⑥[サービス]タブの[Docker]を右ボタンでクリックして、[Dockerの追加...]を選ぶ
⑦[接続をテスト]で接続を確認し、[終了]を押す
⑧ローカルDockerのノードを展開する
netbeans_docker.png

コンテナにあるMySQLのノードに緑の三角が付いていれば起動中です。ノードをマウスの右ボタンでクリックして、ポップアップメニューから停止や起動もできます。

◆NetBeansからmydbデータベースを操作できるようにする

 テーブルを確認したり、SQLを発行したりできるようになります

①[サービス]タブの[ドライバ]で、[MySQL(・・・)]を右クリックして接続を選ぶ
MySQL_NetBeans_ドライバの指定1.gif

②[追加]ボタンを押してMySQL用のドライバを追加する(ドライバはjakartaフォルダに入っている)
 Jakarta/jdbc-driver フォルダから、mysql-connector-java-8.0.19.jarを指定する
MySQL_NetBeans_ドライバの指定2.gif

③ドライバを追加したら[次へ]を押す
MySQL_NetBeans_ドライバの指定3.gif

④データベース名にmydb、パスワードにmysql8と入力し、パスワードを記憶するにチェックを入れる
 最後に[次へ」のボタンを押す
 さらに、この次の画面ではなにもせず、[次へ]のボタンを押す
MySQL_NetBeans_ドライバの指定4.gif

⑤識別名の内容を消し、mydbと入力して[終了]を押す
MySQL_NetBeans_ドライバの指定5.gif

⑥mydbが表示される。
MySQL_NetBeans_ドライバの指定6.gif
※各ノードの上で右ボタンをクリックすると、内容を見たりSQLを発行したりできます

まとめ

 JET(JakartaEE Toolkit)とDockerを使って、すばやくJakartaEEの開発・学習環境を作る方法を解説しました。JETでは、NetBeansとPayaraの連携をするだけです。そして、Dockerがすでに入っていれば、データベース準備も一瞬ですから、5分もあればJakartaEE開発に取り掛かれます。6月にはJakartEE9が公開され、そしていよいよ年末には期待のJakartaEE10が公開予定です。JakartaEE、始めるにはちょうどよい機会ではないでしょうか。
 

 
 

tkxlab
念願かなって、デパ地下のある街に移住したものの、以前よりも忙しくなってしまいました。好きとは言いながら、これでいいのかなぁと、疑問に思う毎日です。将来はぜひとも南の島に住んで、海や空を眺めて暮らしたいと思っています。
https://k-webs.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした