旧グッデイ版 OpenDolphin の保守備忘録です。また、ひどい目にあいました。
いつも Dolphin には泣かされる。
新しい環境での動作確認のためビルドして Dolphin を動かすと、ログインエラーになる。
ログインエラー

postgres の設定ファイルを見直したが、問題無し。
不思議な事に、配布済のjarファイルで実行するとログインできます。
とりあえず、どこでエラーになっているか調べるため、NetBeans でデバックしてみると、
Java API のLoginContextクラスの login メソッド LoginException が発生している事が分かった。
なぜ?
LoginException

まず、Java のバージョンの問題か確認するため、Java 7 でビルドしていたので、
Java 6 でビルドしても現象は同じ。
→ Java のバージョンの問題では無し。

NetBeans のバージョンの問題か確認するため、違うバージョンを使っても現象は変わらない。
→NetBeans のバージョンの問題では無し。

ソースファイルの問題があるか確認するため、再度ソースファイルを取得し直しても現象は同じ。
→ソースファイルの取得エラーではない。

VirtualBox で postgres を動かしているので、VirtualBox に問題があるか確認するため
VirtualBoxのネットワークの設定をブリッジにして、ホスト側の配布済のjarファイルで実行すると
ログインできる。しかし、ホスト側のNetBeans で動かすと、エラーになる。
→ VirtualBoxの問題でもない。

旧開発環境がある古いパソコンで、Java 7 を使って再ビルドすると正常に動く。
後から考えると、この時点で気がつくべきであったが、最近、開発から遠ざかっているので、
ひらめきがない。

はてさて、困った。原因が思いつかない。こうなったら原始的な手段を使おう!
古いパソコンからソースファイル一式をUSBメモリ経由で新しい開発環境にコピーした。
これで、ビルドすると正常に動いた!なんで~?
良く見ると、hibernateのライブラリの指定が違う。
古い環境では大域ライブラリ「Hibernate」を指定しているが、新しい環境では「Hibernate」を
指定せず、../lib/hibernate3.jar を指定している。これは、私が行った変更だ。
ガーン!自分が悪かったのかー。
hibernate3.jar を指定するだけでもビルドエラーにならないのに、
実行時には、例外が発生する?これっておかしいのではないか!hibernateは、鬼門?

結局、コンパイル時には大域ライブラリ「Hibernate」の指定が必須という事が分かった。

Apache Maven を使うと、このような事は無いのであろうか?