K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]


新規投稿 | 開設者ホームページへ戻る | ヘルプ


[2173] 無題
返信


投稿者:Radec
2019/05/07 21:33:35

Link:Eclipseを使うとclassLoaderで例外が発生
こんばんは、本質的なところと全く違うので恐縮ですが、
「Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門」の第3章にて実装したHenacat0_1の挙動について質問となります。 

Henacat0_1のソースコードをダウンロードし、
コマンドプロンプトにてコンパイルを通してMainを実行したところ、
特に問題なく掲示板が稼動しました。

ところが、同ソースコードをEclipseで作成したJavaプロジェクトにコピペしてMainを実行したところ、
URL(http://localhost:8001/testbbs/ShowBBS)を入力したところでclassLoaderが例外を発生させてしまいました。
(デバッグ実行させたところ、WebApplicationインスタンスやServletInfoインスタンスは値を渡せているように見えます)
Eclipseはデフォルト文字コードがUTF-8ですが、本プロジェクトについては個別設定でsjisを設定しているので文字コードは問題ないかと思うのですが。。。
また、binフォルダを見ても無名クラス含めてクラアスファイルはしっかり作成されていますし、ShowBBS等のクラスパス指定もElicpseのプロジェクト配下のクラスパスを指定してコンパイルしています。

文字コードとコンパイルミス以外に考えられる原因等はありますでしょうか?
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[2174] Re:Eclipseを使うとclassLoaderで例外が発生
返信


投稿者:(ぱ)こと管理人
2019/05/08 23:34:30

Link:
はじめまして。
>URL(http://localhost:8001/testbbs/ShowBBS)を入力したところでclassLoaderが例外を発生させてしまいました。

具体的なスタックトレースがわからないので何ですが、
もし起きているのがClassNotFoundExceptionだったとすると、
ShowBBSのクラスが所定の場所にないのではないでしょうか。

Henacatの場合、Henacat自体のソースやクラスをどこに置くかに関係なく、
サーブレットのクラスは、WebApplication.javaの8行目、

private static String WEBAPPS_DIR = "C:\\Henacat_0_1\\webapps";

この場所に置いてあることを期待しています。

もっとも、ここに置いてないならEclipseでなくても動かないですし、

>ShowBBS等のクラスパス指定もElicpseのプロジェクト配下のクラスパスを
>指定してコンパイルしています。

というのは、「3.4.3 Henacat ver.0.1 で掲示板を動かす」の
| この修正を加えたうえで、Henacatのクラスファイルのルートである
| com ディレクトリが存在するディレクトリ(「com\ kmaebashi\henacat\……」と
| いうディレクトリ階層の根元)にclasspathを向けてコンパイルし、
| クラスファイルを作ります。

という記載に沿っていることを意味するのであれば、そのあたりも
当然分かったうえで実行されているように思います。

あとは、具体的な例外を見てみないと、ちょっとわかりません。
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[2175] Re:Eclipseを使うとclassLoaderで例外が発生
返信


投稿者:Radec
2019/05/12 09:33:25

Link:
すみません、自己解決しました。
Eclipseがコンパイル時にデフォルトで使用するバージョンがJavaSE11になっていたので、CokkieTestもreleaseオプションで指定で同バージョンにすることで解決致しました。

(というかそもそもスタックトレース見ろレベルの質問でした、大変失礼致しました。)
[ この投稿を含むスレッドを表示] [ この投稿を削除]