質問: 先日の状態と重複する箇所あるのですが再質問です。 お願いいたします。 目的:Eclipseでビルドして作ったwarファイルを再度Eclipseに展開してデバッグをすること 事情があり、元のアパッチクラウドで動いているアプリがjavaなのかvbなのかわからない状態です。mailなどでjavamailが使われていたのですが、warを展開すると拡張子にjavaがひとつもなく、.classやxml, propertieなどでした。WEB-CONTENTSの中にWEB-INFやMETA-INF、tiles、viewなどが配置されており、tilesにはタグリブの設定、viewにはjspがたくさん入っておりました。 warをEclipseにインポートしてから、展開されたプロジェクトをtomcatサーバーと連携させてjdbc.propertiesにも接続可能なDB情報を記載してデバッグしました。 デバッグ内容:ログイン画面にIDPWを入力して(存在するもの)エンター 結果:ステータス500 致命的エラー Server.server()と一行でるだけ デバッグモードでもおなじ症状です。普通、java開発でログイン画面のデバッグをする際、データベースにIDがあるかSELECTして探すクラスなどにポイントをしてから実行しますが、そのクラスも定かではない状態です。 それにログが一行しかでておらず、トムキャットの設定エラーのような気もしています。 行ったことを整理しますと以下になります。 1ウェブサーバーアパッチ(tomucat springが使われている)のwebapps直下にwarファイルを置いて自動展開されていましたが、その元のwarファイルをeclipseでインポートしました。 2その次にEclipse上で展開されたプロジェクトにpleiades付属のtomcat8を連携させました。 3そしてローカルにできたtomcat8のweb.xmlとservlet.xmlについて、元のウェブサーバーにあったweb.xmlとservlet.xmlを上書きしました。 4ログインページのjspのところで右クリックで実行を選択するとログイン画面が出てきて、存在するはずのIDPW入力するも500エラーが返され、ログファイルには一行だけ「致命的webサーブレットエラーServer.server()」となるのみでした。 4jdbc.propertiesの値も間違ってはいなく、ただ一つ気になるのは前の助言して頂いたjdbcデバイス設定です。これはjdbcの関連するjarということであれば、展開したプロジェクト側にあるlibフォルダ配下にたくさんのjarを用意している状態です。 ウェブサーバーからローカル環境構築にいたるまでの行うこととして何か不足間違えはどこにありますか? 取り込み後のEclipseの中は以下のような構成になっています。 Server> ~ ~ ~ web.xml HogeProject src (packageなど springなど) (classファイルなど) jdbc.prpperties WebContents META-INF tiles←taglib設定 view←jspがたくさん WEB-INF classes lib web.xml このような構成です。しかしjava拡張子がひとつもありません。 デバッグポイントをどこに置いたらよいかさえわかりません。 このようなjavaの作りはあるのでしょうか。実際このインポートする前のwarファイルはウェブサーバーのwebapps直下にてデプロイしてしっかり利用できています。そのウェブサーバーにはwebappsの他にソースコードや設定を忍ばせているという理由から、warファイルだけをeclipseに展開してもできないということなのでしょうか。 よろしくお願いいたします。 よろしくお願いいたします。
回答: 通常warファイルは実行に必要なもののみ格納されるため、Javaファイル(.java)はclassファイルに変換され格納されます。 ※たまにwarファイル内にjavaソースも格納することもありますが、そっちの方が稀です。 そのため上記のような構成は一般的な構成となります。 ※Windowsアプリもそうですが、一般的にソースから実行ファイル(.exe)を生成することはあっても、.exeファイルからソースを生成することがあまりないのと同様です。 今回の対応としてはちょっと、ここからは特殊な対応となりますが、、、 classファイルからjavaファイルを生成するツールがあります。 逆コンパイルして頂きソースの内容からエラーの原因を推測し対応頂くのが良いかと思います。 ※必要に応じてログが出力できそうであれば、ログを出力してみるなど。。。 ツールの情報や使い方参考になりそうなURLを記載しましたので、御参考頂ければと思います。 ■jadでclassをデコンパイル http://qiita.com/Takmiy/items/0c968aab8460d93166b0 ■JD-EclipseでJavaのclassファイルをデコンパイルする http://totech.hateblo.jp/entry/2015/02/19/145004