oracle,tomcatでWebAPサーバとDBサーバを構築して適当に遊ぶ環境を作る(簡易アプリ開発からサーバデプロイまで)
前回(oracle,tomcatでWebAPサーバとDBサーバを構築して適当に遊ぶ環境を作る(環境構築編) - IT関係の勉強とか日々思うこととか)の続きです。前回は環境を構築しましたが、今回はその環境を使ってDB接続する簡単なWebアプリの動作確認をしていきます
<開発環境など>
OS:Windows10
IDE:NetBeans8.2(※Eclipseでもやることは一緒です)
言語、フレームワークなど:今回はJava+JSFでやってみます。
(小言)正直JSFとかJSP+サーブレットとかJavaEEとか細かい違いが判らないんですけど誰か教えて、、、
0.開発端末へのTomcatのインストール
前回はサーバ側に入れましたが、開発にあたりTomcatを開発端末に入れる必要があります。前回のURLの中にexeファイルがあるので、それをDLしてインストールしてください。
1.開発環境設定
1.1 NetBeansのインストールからプロジェクト作成まで
NetBeansをDL、インストールしてください。場所は以下(JavaEEというやつ)
https://netbeans.org/downloads/?pagelang=ja
インストール後にNetBeansを起動したら「ファイル」→「新規プロジェクト」を選択します。その後出てくるダイアログでカテゴリ「Java Web」プロジェクトで「Webアプリケーション」を選択して「次へ」を押します。
プロジェクト名とかフォルダとかありますが、ここはお好きなように。諸々設定後「次へ」を押します。
サーバは「Apache TomcatまたはTomEE」というものを選択し、その下にあるJavaEEバージョンは「Java EE 7 Web」を選択します。すべて終わったら「次へ」を押します
フレームワークは「JavaServer Faces」にチェックを入れてください。終わったら「終了」を押します。以下のような画面になっていればとりあえずOKです
Javaを利用してOracleのDBに接続する場合に必要なライブラリを設定します。
この時に利用するのがoracle jdbc driverというものです。oracleとの接続やDBへのSQL発行処理などのAPIが提供されています。
以下から、oracle JDBCドライバを落とします。ojdbc8.jarというファイルをダウンロードしてください
12.2.0.1 - JDBC and UCP Download Page
ダウンロードしたら先ほど作成したNetBeansのプロジェクトにjarファイルを組み込みます。1.1最後の画像左側にあるWebApplication1にぶら下がっているフォルダ群から「ライブラリ」を右クリックし「JAR/フォルダの追加」を選択します。出現したダイアログで先ほどダウンロードしたojdbc8.jarを指定し「開く」ボタンを押します。
すると、ライブラリフォルダに「ojdbc8.jar」が追加されているはずです。
さて、これでようやくプログラミングフェーズに入ることができます。
2.DBの取得結果を画面に表示するアプリケーションの作成
今回作成するアプリケーションはDBの取得結果を画面に表示する、という簡単なものです。処理概要は以下のような具合です。
なお、ソースはgithubに挙げていますので参考までにどうぞ
GitHub - gitk47320/WebApplication1
さて、本来であればローカル環境にもDBを構築する必要があるのですが、今回はJava処理がWindows10側にありDBはサーバ上にあるという前提で話を進めます(手を抜きました。はい)。ローカルにDBを構築する場合は、oracle12R2をWIndowsにインストールするだけです。(そのうち番外編としてやるかも)
また、今回はJSFやSQLの実装、ローカル環境へのDB作成などの基本的なところについては説明を省きます(環境をメインテーマとしているため)。実装方式やSQL文の入門については申し訳ないですが、他サイトや書籍を参考にしてください。
(小言)JSFとかJavaとかSQLとか正直筆者がそこまで詳しくない、というのもありますが。。。
さて、とりあえずローカル環境でアプリを動作させて以下のように表示されればOKです。(URLはlocalhost:8080/WebApplication1)DBの中身は何でもよいです(だいぶ寂しい画面ですみません、、、)。なお、プロジェクト作成の時にWebApplication1としなかった人は、この部分はプロジェクト名に適宜読み替えてください。
3.サーバへのデプロイ
ようやくですが、前回構築した環境にデプロイして、動かしてみます。NetBeansでビルドしたwarファイルをサーバに突っ込んで展開します。
ここで一つ注意。ローカル環境でDB接続を試した場合は、必ずソースコード内のoracleの接続情報を変更してください(本来であればこういった情報はハードコードすべきではないんですけどねぇ・・・)
上記見直した後、ビルドします。画面上部「実行」→「プロジェクト~~をビルド」を選択します
その後(プロジェクト作成時指定の作業ディレクトリ)/WebApplication1/distを覗くとwarという拡張子のファイルがあります。これをサーバに突っ込みます。突っ込む場所はtomcatのインストールフォルダ内のwebappsというフォルダになります。前回構築した環境という前提であれば「/opt/tomcat/apache-tomcat-9.0.0.M27/webapps」です。
この場所でwarファイルを解凍します。拡張子は違えどただのzipファイルなので、
unzip WebApplication.war
で解凍できます。
その後(サーバのIPアドレス):8080/WebApplication1にブラウザ経由でアクセスして、書籍一覧が表示されればOKです。
4.まとめ
まず駄文、長文で失礼しました。あとだいぶ手を抜きました。ただ、環境構築~アプリ実行までを一連の流れで説明している記事が見つからなかったので、あれば誰かの役に立てるかな、と思った次第です。後日自分で読み返してみて、足らない部分とかあれば、また追記とかしようと思います。