プロが教える店舗&オフィスのセキュリティ対策術

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

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に入れて実行しましたが、だめでした。

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

A 回答 (2件)

書籍は持っていないので詳細は分かりませんが、Tomcatなどを使った簡単なWebアプリケーションのようですね。


ちなみに、HTTP404は、File not foundなので、「URLで指定された対象のファイルは見つからないよ!」という内容です。

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

この回答への補足

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

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

補足日時:2014/08/02 18:43
    • good
    • 0

本は読んでいませんが。



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

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

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

この回答への補足

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

補足日時:2014/08/02 18:45
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています