こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EclipseでHTTP404エラーが出る。

EclipseでJAVAの練習してるのですが、
ここ最近HTTP404エラーが頻発して困ってます。
何が原因かわかりません。ちなみに参考書として使ってるのは、著:国本大吾さんのスッキリわかるサーブレット&JSPです。
<詳細>
[URL]http://localhost:8080/docoTsubu/WEB-INF/classes/model/User.java

HTTPステータス 404 -
type ステータスレポート
メッセージ
説明 The requested resource is not available.
Apache Tomcat/7.0.54

このようにエラーが出てしまいます。
気になったのが、私はUser.javaをWEB-INFディレクトリーに入れてません。
URLに間違いがあるのかもしれないと思い、URLのWEB-INF/classes/を消して実行しましたが、だめでした。
次はWEB-INFに入れないといけない物なのかもしれないと思いモデルごとWEB-INFに入れて実行しましたが、だめでした。

この後、全部削除してもう一度やり直すってこともやってみましたが、だめでした。
もうどうしたらいいのかわかりません。どなたかお助けください。

投稿日時 - 2014-08-02 17:28:24

QNo.8701840

暇なときに回答ください

質問者が選んだベストアンサー

書籍は持っていないので詳細は分かりませんが、Tomcatなどを使った簡単なWebアプリケーションのようですね。
ちなみに、HTTP404は、File not foundなので、「URLで指定された対象のファイルは見つからないよ!」という内容です。

アクセスしようとしているURLに、凄く違和感があります。
URLでWEB-INFの下のJavaソースコードに直接アクセスしようとしているようですが、これが間違いです。(書籍にもそう書いてありますか?)
たいていは、JSPを介して、そこからUser.javaを利用する形になると思うのですが。
(User.javaはmodelの下に入っているので、単純なJavaのクラス(サーブレットなどでは無く)だと思う)

投稿日時 - 2014-08-02 17:56:14

補足

回答ありがとうございます。
私もなんで、WEB-INFに下にアクセスされてしまうのかわかりません。
URLを見た時から、「え?なんでここ?おかしくね?」って思ってました。
こう思ったからこそ、URLのWEB=INFとclass部分を消してしまえば、ちゃんとアクセスされるだろうって思ってやってみましたがだめでした。
User.javaはちゃんとsrc下のmodelの中に入っています。
srcの下のmodelの中にちゃんと入ってるのに、実行してみたら、WEB-INFの中ってことになってしまいます。

そしてJSPやサーブレットを介してUser.javaを利用するってーのも理解してるつもりなんですが、
ただ、実行すれば、プログラムミスが無いかぎり、「実行を完了しました」的なことが出るんじゃないかな~と思い、それが出ないで404と出るから、私が何か変なことしておかしくなったんじゃないかと思い、質問させてもらいました。
もしかして、これが原因なんでしょうか?

投稿日時 - 2014-08-02 18:43:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

本は読んでいませんが。

WEB-INFのフォルダはサーバ内部の構造であって、URLから直接アクセスはできません。

解決には、Web.xmlにて、ServletクラスとServlet名のマッピングを行い、
さらにServlet名とUrlパターンのマッピングを行う必要があります。

また、もしもmodel/User.javaがServletではなく、単なるJavaクラスならば呼び出しを行うServletクラスが必要です。
最後に、WEB-INF内に置くのはjavaファイルではなく、コンパイル後のclassファイルです。

投稿日時 - 2014-08-02 18:07:09

補足

WEB-INFのフォルダの中に最初はおいてないのに、まるで、置いてあるかのようなURLが出てしまいます。
なので本当に置いてやったら404がなくなるかも!!って思って置いてあげてもだめでした。

投稿日時 - 2014-08-02 18:45:10

あなたにオススメの質問