C#で新年会に使えるビンゴマシンを作ってみた

超何となくビンゴマシンとかちょろっと作ってみようと思って作ってみた。ランダムに番号を表示させるだけの簡単なもの。

・開発環境・・・Visual Studio 2017 + Windows 10 Pro

・言語など・・・C#WPF

需要ないと思うけどgithubにソリューションファイル一式アップしました

GitHub - gitk47320/bingo

 

いや、ほんとにそれだけですwwww

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です

f:id:hatek47320:20171225222718p:plain

 

1.2 oracle JDBCドライバの設定

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の取得結果を画面に表示する、という簡単なものです。処理概要は以下のような具合です。

f:id:hatek47320:20171225232920p:plain

なお、ソースはgithubに挙げていますので参考までにどうぞ

GitHub - gitk47320/WebApplication1

さて、本来であればローカル環境にもDBを構築する必要があるのですが、今回はJava処理がWindows10側にありDBはサーバ上にあるという前提で話を進めます(手を抜きました。はい)。ローカルにDBを構築する場合は、oracle12R2をWIndowsにインストールするだけです。(そのうち番外編としてやるかも)

また、今回はJSFSQLの実装、ローカル環境へのDB作成などの基本的なところについては説明を省きます(環境をメインテーマとしているため)。実装方式やSQL文の入門については申し訳ないですが、他サイトや書籍を参考にしてください。

(小言)JSFとかJavaとかSQLとか正直筆者がそこまで詳しくない、というのもありますが。。。

さて、とりあえずローカル環境でアプリを動作させて以下のように表示されればOKです。(URLはlocalhost:8080/WebApplication1)DBの中身は何でもよいです(だいぶ寂しい画面ですみません、、、)。なお、プロジェクト作成の時にWebApplication1としなかった人は、この部分はプロジェクト名に適宜読み替えてください。

f:id:hatek47320:20171225231711p:plain

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.まとめ

まず駄文、長文で失礼しました。あとだいぶ手を抜きました。ただ、環境構築~アプリ実行までを一連の流れで説明している記事が見つからなかったので、あれば誰かの役に立てるかな、と思った次第です。後日自分で読み返してみて、足らない部分とかあれば、また追記とかしようと思います。

oracle,tomcatでWebAPサーバとDBサーバを構築して適当に遊ぶ環境を作る(環境構築編)

LPIC取った後で次何しようかなと考えているさなかoracleでも勉強するか、そういえば昔秋葉原で買った中古のThinkPad眠ってるから、こいつをDBサーバにするか、いやどうせならTomcatとか入れていろいろ遊ぶか、というのが事の発端。

 

この記事はインストールして喜びました、という記事なのでそれ以上のことは何もないです、ということだけ言っておきます。

あと、結構ほかのサイト見ろ、という感じで手を抜いていますが、こうやって少し大きな流れで情報を集約しているサイトって少ないかな、って思っています。そういう意味では意味のある記事を書けた?

 

<諸々構成>

HW:中古のThinkPadX201(SSD:320GB/mem:8GB)他は変更なし

OS:CentOS7.2

その他:APサーバソフトとしてTomcat9、DBサーバにoracle12cR2

なお、今回は1台にAPサーバとDBサーバが相乗りしている状態。

クライアントマシン:Windows 10 64bit(NEC Lavie Hybrid Zero)

※以下に示す手順はVMとかの仮想環境でも十分参考になると思います。

 

1.OSインストール

今回はUSBブートを使いました。まずはISOを落とします。4~5GBくらいあるので、時間かかります

CentOS Mirror

次にUSBブートのためのツールを用意します。最初はUNetbootinというのを使いましたが、インストール時にうまくいかなかったので、Etcherというのを使いました。

Etcher

UNetbootinでCentOS7系のUSB作成するとたまにインストールがうまくできない時があるようです。。。理屈は不明。

HowTos/InstallFromUSBkey - CentOS Wiki

なお、MacOS(その他LinuxOS)の人はddコマンドでUSBメモリ作成できます。

MacOSX上でISOファイルからインストールUSBディスクを作る - re:inventing the wheel

ISOとEtcherダウンロードできたら、USB作成します。Etcherの使い方は以下(画面キャプチャはMacだけどWinも全く同じです)

Etcher - 3ステップで簡単にイメージ書き込み MOONGIFT

 

あとは、インストールしたい端末のBIOSでブートの優先順位を一番上にし、端末に作成したUSB挿した状態で起動すればCentOSのインストール画面が出ます。(途中でネットワークの設定をしていますが、ここは僕はやっていません。めんどくさかったから笑)

CentOS 7 x86_64 をインストールしてみた - Linux入門 - Webkaru

 

2.oracleインストール

oracleダウンロードします。oracleへのユーザ登録が必要です(手続きは簡単)。

Oracle Database ソフトウェア・ダウンロード

上記サイトの「oracle12c Release 2」という部分の「Linux x86-64」をダウンロードします。

手順はここに書かれている通りです。

http://www.oracle.com/technetwork/jp/database/enterprise-edition/documentation/sidb12201-inst-linux-x64-ja-v10-3627443-ja.pdf

上記の4.1までがoracleのインストール。4.2がDB作成です。なお、DB作成のところですが、手順と少し異なったことをしています。「標準構成」で「コンテナデータベースとして作成」のチェックを外しています。理由はよくわからなかったから笑。標準構成でDB作成すると、その後の手順が一気にショートカットされます。

とりあえず4.2の17まで行けばOKです。

 

3.OpenJDK、tomcatインストール

3.1 OpenJDK

tomcatを落とす前にJavaの実行環境も落としましょう。今回はOpenJDKを使います。

最近Java9が出ましたが、あえてJava8で行きます笑。yumコマンドで楽勝。

CentOS 6&7/Fedora 20にOpenJDK 8環境を構築 - Qiita

 

3.2 tomcat

さて、次はtomcat行きます。yumtomcatでもよいのですが、これだとtomcat7で少々古いです(javaEE7に対応していないっぽい?)。今回はzipファイル展開して進めます。

CentOS7にTomcat9をインストールする - Qiita

上記はJava9、tomcat9.0.1でやっていますが、java8でも大丈夫です。なお、僕はtomcat9.0.0でやりました。理由は特にありません。。。

 

さて、これで環境は整いました。次は実際にDBアクセスし、データを画面に表示するアプリを作って簡単に疎通確認してみましょう。疲れたのでいったんここまで。。。