• 締切済み

Servlet_HelloWorld表示方法

お世話になります。 java暦数ヶ月のものです。 現在、Java勉強の為サーブレットに取り組んでおります。 参考サイトや参考書を使っているのですがうまく表示ができません。 表示テスト用として、下記のhelloworld2直下にindex.htmlファイルを置いてURLより叩いたのですがこれでも表示されません。 (※前回やっていた場合は、表示ができておりその際に作ったファイルは、表示ができています) 【開発環境】 Eclipseにて、classファイル化して所定のフォルダに格納 【環境】 ・サーブレット C:\servlet-sample\helloworld2 │ index.BAK・・・・勝手に作られた │ index.html・・・・『http://localhost:8080/hello2/index.htmlで動作するかテスト │ ├─img │ p1.png │ └─WEB-INF │ web.xml │ └─classes HelloWorld2.class サーバー側(conf内) C:. │ catalina.policy │ catalina.properties │ context.xml │ logging.properties │ server.xml │ tomcat-users.xml │ web.xml │ └─Catalina └─localhost hello2.xml 【ファイル内容】 ・Java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); } } ・コンテキストxmlファイル <Context path="/hello2" docBase="C:\servlet-sample\helloworld2"/> ・web.xml <?xml version="1.0" encoding="ISO-8859-1"?> http://www.apache.org/licenses/LICENSE-2.0 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>helloworld2</servlet-name> <servlet-class>HelloWorld2</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>Sample1</servlet-name> <servlet-class>Sample1</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>xpoweredBy</param-name> <param-value>false</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>helloworld2</servlet-name> <url-pattern>/helloworld2</url-pattern> </servlet-mapping> <!-- The mappings for the JSP servlet --> <servlet-mapping> <servlet-name>Sample1</servlet-name> <url-pattern>/Sample1</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jspx</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 【参考サイト】 http://www.javadrive.jp/servlet/ 【アクセスURL】 http://localhost:8080/hello2/helloworld2 http://localhost:8080/hello2/index.html (接続確認用)でアクセス 【エラーメッセージ】 HTTPステータス404  The requested resource (/hello2/index2.html) is not available. 参照先がないという意味だと思うのですがなぜこのようなメッセージが表示され、正常に稼動しないのかが不明です。 表示が出来ていたファイルに近づけてやっておりますが・・・ 他の方に上記ソースで実施して頂いたら実行できたようです^^; ご教示の程、よろしくお願い致します。

みんなの回答

noname#147388
noname#147388
回答No.4

Tomcat マネージャー( http://localhost:8080/ ) から対象のアプリは起動が確認できてる?

u-jinnikuo
質問者

お礼

ご指摘ありがとうございます。

u-jinnikuo
質問者

補足

対象のアプリとは、登録したコンテキストが表示されているかどうかということでしょうか? http://www.javadrive.jp/servlet/context/index2.htmlの最後の画面 そのことであれば表示されておりません。

回答No.3

index2.htmlじゃなくてindex.htmlじゃないの? だからindex2.htmlなんてないよって言われてるんじゃなくて? 「2」とかつけるんじゃなくて、もっと違う、見間違えたり、タイプミスしないような名前にしなよ。

u-jinnikuo
質問者

お礼

ご指摘ありがとうございます。

u-jinnikuo
質問者

補足

大変失礼致しました。 index.htmlが正です。 エラーメッセージは、The requested resource (/hello2/index.html) is not available となります。

noname#147388
noname#147388
回答No.2

質問の階層構造だと WEB-INF と同列にしか見えません。 説明の階層は正しく書きましょう。 ├ WEB-INF ││ web.xml │├ classes 等 The requested resource (/hello2/index2.html) is not available. ← ここにかいてあることが全て

u-jinnikuo
質問者

お礼

ご指摘ありがとうございます。

u-jinnikuo
質問者

補足

あ! 申し訳ありません、確かに今の表記では同じに見えますね・・・ 失礼致しました。 ├ WEB-INF ││ web.xml │├ classes     |-HelloWorld2.class となります。 配置の問題なのでしょうか。 参考サイトの手順どおりにやってもエラーが出てしまい何処が悪いのか・・・

noname#147388
noname#147388
回答No.1

classes の位置が違うからだろう。

u-jinnikuo
質問者

お礼

ありがとうございます。

u-jinnikuo
質問者

補足

WEB-INFフォルダ内にclassesを置いているのですがここではないのでしょうか。

関連するQ&A

専門家に質問してみよう