0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Java EEを使ったWebアプリケーションを勉強するためのローカル(Windows10)環境構築

Last updated at Posted at 2021-11-22

Java EEを使ったWebアプリケーションを勉強したいため、ローカル(Windows10)に開発環境を構築する。
Webアプリケーションサーバーはpayara、DBはoracle、IDEはNetBeansを使うことにした。


用意したもの
Apache NetBeans 12.5
Apache-NetBeans-12.5-bin-windows-x64.exe。公式からダウンロードした。NetBeansにはJava EEが含まれている。

JDK 11
jdk-11.0.13_windows-x64_bin.exe。公式からダウンロードした。NetBeans自体がこれで動いてるのかな?たぶん。

Payara Server 5.2021.9
payara-5.2021.9.zip。公式からダウンロードした。今回のWebアプリケーションサーバ―

Oracle Database 19c
WINDOWS.X64_193000_db_home.zip。公式からダウンロードした。Oralceを攻めたい

A5MK
a5m2_2.16.2_x86.zip。公式からダウンロードした。DBいじる用

SQL Plus Version 21.3.0.0.0
instantclient-basic-windows.x64-21.3.0.0.0.zip & instantclient-sqlplus-windows.x64-21.3.0.0.0.zip。公式からダウンロードした。2つないと動かないらしい。あとは、microsoft visual ~系がいるらしいが、自分の端末(Windows10)では特になにか入れなくても動いた。
A5MKではできないコマンドをDBに対して実行する用


手順1
JDK11をインストールしてから、NetBeansをインストールする。特になにか設定などはなかったように思う。


手順2
Payaraのzipを展開する。次にNetBeansのServices>Serversから展開したPayaraを追加する。自分は以下のように追加した
image.png


手順3
Oracle DBのzipを展開する。展開した中にある以下のインストーラーを起動する。
app\oracle\product\19.3.0\dbhome_1\setup.exe

インストーラーに従い、進めていく。
自分は、データベース・インストールでは、単一インスタンス・データベースを作成を選択し、
システムクラスはデスクトップクラスを選択(うろ覚え)、
Oracleホーム・ユーザーは仮想アカウントの使用を選択した。

以下を参考にした。
https://www.oborodukiyo.info/ORACLE/19c/ORA-DownloadOracle19cForWindows

インストール後、以下のファイルを必要であれば編集する。
app\oracle\product\19.3.0\dbhome_1\network\admin\tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

↓これがなければ追記する↓
ORCLPDB =←接続文字列任意
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orclpdb)←プラガブルデータベースのサービス名。サービス名はlsnrctl statusで確認できるらしい。
    )
  )
↑↑↑

以下を参考にした。
https://kenko-keep.com/pdb-ora-01017/


手順4
SQL Plus関連zip(instantclient-basic-windows.x64-21.3.0.0.0.zip & instantclient-sqlplus-windows.x64-21.3.0.0.0.zip)を展開する。2つのzipは同じディレクトリに展開する。
展開後、DBにあったtnsnames.oraを(zip展開先の親)\instantclient_21_3配下に置く。←もしかしたら不要かも

環境変数を設定する。
変数名:値
NLS_LANG:Japanese_Japan.JA16SJISTILDE
ORACLE_BASE:(DB展開先)例 E:\app\oracle\product\19.3.0
ORACLE_HOME:(DB展開先)例 E:\app\oracle\product\19.3.0\dbhome_1
TNS_ADMIN:(SQL Plus展開先に置いたtnsname.oraの場所) 例:E:\~\instantclient_21_3 ←もしかしたら、直接DBにあるtnsname.oraを指定してもいいのかもしれない

環境変数「Path」に「%ORACLE_HOME%」を追加

以下を参考にした。
https://www.bnote.net/oracle/instant_sqlplus.html

Oracle DBにはコンテナ・データベース(CDB)と、その下にプラガブル・データベース(PDB)と呼ばれる子DBがあるらしく、ユーザー(スキーマ)はPDBにしか作成できないため、PDBに作成する。CDB、PDBはこれまでのDBインストールで既に作成されている。(経験談)

以下を参考にPDBにユーザーを作成する。
https://www.dbsheetclient.jp/blog/?p=1566
上記、リンク先にある通り、インストール直後のPDBのOPEN_MODEは「MOUNTED」のため、「READ WRITE」に変更する必要がある。


手順5
A5MKを起動。データベースの追加と削除から、PDBへの接続を作る。作成したユーザーで接続できればOK
image.png


手順6
NetBeansの左上のFileタグからNew Projectを選択し、Web Applicationプロジェクトを作成する。Categoriesはよく分かっていないが、使い慣れてるMavenにした。
image.png

以下にあるファイルを編集する。
(作成されたプロジェクト)\src\main\resources\META-INF\persistence.xml

ない場合は、プロジェクトを右クリック>New>Otherで開くNew File画面から
Categories:Persistence
File Types:Persistence Unitを選択して作る。

ファイル内容は以下
<persistence-unit name="xxxxxx" transaction-type="RESOURCE_LOCAL">←扱うDBは1つなので、RESOURCE_LOCALを指定。複数扱いたい場合は、分散トランザクションできるJTAを指定する。
  <exclude-unlisted-classes>false←実はよく意味をわかっていない。
  <properties>
    <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@ORCLPDB"/>
    <property name="javax.persistence.jdbc.user" value="xxxxx"/>
    <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
    <property name="javax.persistence.jdbc.password" value="xxxxx"/>
    <property name="javax.persistence.schema-generation.database.action" value="create"/>←実はよく意味をわかっていない。
  </properties>
</persistence-unit>

以下を参考にした
https://accelebiz.hatenablog.com/entry/20150322/1426997344


以上で環境構築は終了。
お疲れ様でした。:smiley::tada::poultry_leg::cake::champagne:

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?