QA@IT

UbuntuのVMでJavaアプリが動作したり、しなかったりします

3517 PV

初めてお世話になります。

以下の構成で、Javaアプリが動作したり、しなかったりします。

動作するパターン①
Windows7(ホスト)⇒Ubuntu15.04(VM)
├eclipse4.4      ├Tomcat8
└Tomcat8      └Postgresql9.4
※eclipse上のTomcatを使用し、DBはUbuntu上のPostgresql

動作するパターン②
Windows7(ホスト)⇒Ubuntu15.04(VM) + Windows Server 2008(VM)
└ブラウザ      ├Tomcat8
           └Postgresql9.4
※ブラウザからUbuntu上のTomcatおよびPostgresqlへアクセス
 Windows Serverは起動しているだけ(Tomcatサービス停止)
 UbuntuとWindows Serverは共にVMware Workstation上にあり、
 ネットワークにNAT(vmnet8)を使用

動作しないパターン
Windows7(ホスト)⇒Ubuntu15.04(VM)
└ブラウザ      ├Tomcat8
           └Postgresql9.4
※動作するパターン②の状態から、Windows Serverを落とすと
 JavaアプリがNullPointerExceptionを出す。
 JSP1 ⇒ Servlet1 ⇒フォーワード⇒ JSP2
 上記フローのうち、Servlet1でRequestDispatcherのエラー、
 JSP2でリスト型変数に何らかの不具合。

解決したい問題は、動作しないパターンの原因を明らかにして、
動作するようにすることです。
1番の謎はWindows Serverがどんな役割を果たしているのかですが、
私はここでギブアップとなってしまいました。

この問題のもっとも考えられる原因をご提示いただけると助かります。

回答

その後、Ubuntuのポート5432を閉じたところ、動作するパターン①で同様のエラーが発生し、
動作するパターン②ではエラーが出ないことから原因がわかりました…
動作するパターン②では、UbuntuのPostgresqlではなく、Windows ServerのOracleのほうから
データを取ってきていました。

整理すると以下のようになります。

動作するパターン①
Ubuntu + Posgresql向けの最新資源がeclipse上にあるため、正常動作する。

動作するパターン②
Windows Server + Oracle向けの古い資源がUbuntu上にあるため、UbuntuとWindows Serverの
両方が起動しているとき、正常動作する。

動作しないパターン
Windows Serverを落とすと、データを取ってこれなくなるため、NullPointerExceptionを出す。

なぜ、このような誤解が起こったかというと、ホストPCからTomcat managerを使って
WARファイルをアップロードしていたのですが、これがアップロードしているように見えて
実はしていなかったという…

質問の内容では、答えようがありませんでしたね…お騒がせしました。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。