• 締切済み

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. 参照先がないという意味だと思うのですがなぜこのようなメッセージが表示され、正常に稼動しないのかが不明です。 表示が出来ていたファイルに近づけてやっておりますが・・・ 他の方に上記ソースで実施して頂いたら実行できたようです^^; ご教示の程、よろしくお願い致します。

  • Java
  • 回答数4
  • ありがとう数4

みんなの回答

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

  • servletでHTTPステータス404エラーが解決できません

    環境:Eclipce3.2、Tomcat5.5、jdk1.6.0_06を使用。 ○サーブレットプログラム package pack; import java.io.*; import javax.servlet.*; public class ShowDateServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println(new java.util.Date()); out.println(""); out.println(""); } } ○web.xmlの内容は以下の通り <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>J2EEPJ</display-name> <servlet> <description></description> <display-name>ShowDate</display-name> <servlet-name>ShowDate</servlet-name> <servlet-class>pack.ShowDateServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ShowDate</servlet-name> <url-pattern>/ShowDate</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app> アクセスは http://localhost:8080/hello/ShowDate アクセスすると、 type ステータスレポート メッセージ /hello/ShowDateServlet 説明 The requested resource (/hello/ShowDateServlet) is not available. が表示されてしまいます。 何度も最初から作り直しては、見直しをしましたが エラーになる原因をつかむことができない状態です。 間違い、不足している箇所がありましたら、ご指摘の程お願い致します。

  • Strutsのtaglibについて

    Strutsを最近学習し始めた超初心者ですが... taglibを使えるようにするweb.xmlの設定なんですが。 なぜかエラーが出てしまいます。 環境はeclipse3.1.1 Struts1.2.9 apache-tomcat-5.5.25です。 web.xmlの記述は以下の通りです。 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <display-name> test01</display-name> <filter> <filter-name>CharacterEncoding</filter-name> <filter-class>filters.CharacterEncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>CharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <taglib> <taglib-uri>/tags/struts-html</taglib-uri> <taglib-location>/WEB-INF/lib/struts-html.tld</taglib-location> </taglib> </web-app> <taglib>のところにエラーの×が出てしまうのですが。 何か間違ってますか?? とても困ってますので是非、わかる人お願いします!!

    • ベストアンサー
    • Java
  • strutsに関連したxmlのサーブレットマッピング

    失礼致します。 初歩的なことですが質問させてください。 strutsにおけるxmlファイルの記述例は次のようになります。 <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> ここで、新しいサーブレット(download)を追加しようと次のように記述を加えました。 <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <servlet-name>download</servlet-name> <servlet-class>Download</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-patte <servlet-name>download</servlet-name> <url-pattern>/download</url-pattern>rn> </servlet-mapping> すると、入り口のファイルに対し、「The requested resource (/プロジェクト名/ファイル名.jsp) is not available.」と警告されました。 strutsではサーブレットの追加は出来ないのでしょうか?ご指摘お願いします。

    • ベストアンサー
    • Java
  • Servletが動かない

    下記のようなサーブレットを作成し、web.xmlも記述して動かしてみようとしたところ下記のようなエラーが発生して動きません。(Win2000、Tomcat4.1) ~~~HelloWorldServlet.java package test_servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = res.getWriter(); out.println("<html>"); out.println("<head>"); out.println("</head>"); out.println("<body>"); for (int i = 1; i <= 10; i++) { out.println("Hello World" + Integer.toString(i)); } out.println("</body>"); out.println("</html>"); } } ~~~web.xml <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>HellowWorld</servlet-name> <servlet-class>test_servlet.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HellowWorld</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping> </web-app> ~~~http://localhost:8080/hello接続時のスタック javax.servlet.ServletException: クラス test_servlet.HelloWorldServlet はサーブレットではありません

    • ベストアンサー
    • Java
  • java Web.xml ファイルの設定について

    Eclipse 3.4を使用してwebアプリを作成しているのですが、 web.xmlの「filter-mapping」の設定を行った時に処理が「filter」 にて指定した場所へ遷移しません。web.xmlの設定が誤っているのではないかと思い色々調べたのですが、解決しませんでした。 どなたか解決方法等、分かる方がいらっしゃれば教えていただいても よろしいでしょうか。 以上ですが、よろしくお願いいたします。 <Web.xml> <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Rev1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <filter> <description></description> <display-name>LoginFilter1</display-name> <filter-name>LoginFilter</filter-name> <filter-class>datachk.LoginFilter1</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/Search.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/Datachk</url-pattern> </filter-mapping> <servlet> <description></description> <display-name>LoginChk</display-name> <servlet-name>LoginChk</servlet-name> <servlet-class>datachk.LoginChk</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginChk</servlet-name> <url-pattern>/LoginChk</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>Search</display-name> <servlet-name>Search</servlet-name> <jsp-file>/Search.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>Search</servlet-name> <url-pattern>/Search.jsp</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>Datachk</display-name> <servlet-name>Datachk</servlet-name> <servlet-class>datachk.Datachk</servlet-class> </servlet> <servlet-mapping> <servlet-name>Datachk</servlet-name> <url-pattern>/Datachk</url-pattern> </servlet-mapping> </web-app>

    • ベストアンサー
    • Java
  • eclipse servlet 404対処方法

    初めて質問させて頂く者です。宜しくお願いします。Java初心者です。 eclipse4.3のtomcatプロジェクトを使い、以下のServletコードを作成しました。 ブラウザアドレスバーに以下アドレスを入れて実行しましたが、HTTPステータス404が表示されます。 どのように改善したら良いかアドバイスをお願い致します。長文申し訳ございません。本当に困っています。 環境:windows8.1 eclipse4.3 ディレクトリ:jwapp(プロジェクト名) -test(パッケージ名) -First(ファイル名) 指定アドレス:localhost:8080/jwapp/servlet/test.First web.xmlファイルはWEB-INFの中に置いています。 記述は以下のとおりです。↓ <?xml version="1.0" encoding="ISO-8859-1"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"> <servlet> <servlet-name>first</servlet-name> <servlet-class>test.First</servlet-class> </servlet> <servlet-mapping> <servlet-name>first</servlet-name> <url-pattern>/first</url-pattern> </servlet-mapping> </web-app> Servletのコードは以下のとおりです。↓ package test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class First01 extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse res) throws IOException,ServletException{ res.setContentType("text/html;charset=Shift_JIS"); PrintWriter out=res.getWriter(); out.println("<html)"); out.println("<head>"); out.println("<title>テスト</title>"); out.println("<h1>テスト</h1>"); out.println("</body>"); out.println("</heml>"); } }

    • ベストアンサー
    • Java
  • Fedora10でHelloWorld.javaをコンパイル

    すると以下のようにエラーがでます。 何が原因でしょうか? /root/HelloWorld.java: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld 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>"); } } [root@prime ~]# javac -classpath /usr/share/tomcat6/lib/tomcat6-servlet-2.5-api-6.0.18.jar HelloWorld.java ---------- 1. WARNING in HelloWorld.java (at line 5) public class HelloWorld extends HttpServlet { ^^^^^^^^^^ The serializable class HelloWorld does not declare a static final serialVersionUID field of type long ---------- 1 problem (1 warning) [root@prime ~]# ただし、 /usr/share/tomcat6/lib/tomcat6-servlet-2.5-api-6.0.18.jar に使用したapiクラスは含まれています。 The serializable class HelloWorld does not declare a static final serialVersionUID field of type long の意味を教えてください。

    • ベストアンサー
    • Java
  • サーブレットで絵文字を使用するには

    JSPで絵文字を使用するには? JSPでimodeの絵文字を使用する方法をどなたかご存知でしょうか? Shift_JISでimodeの絵文字をJSPファイルに埋め込んだところ、 内部で変換がうまくいかないのかエラーになってしまいました。 環境は WindowsXP + Tomcat5.0.24 です。 JSPファイルの先頭には <%@ page contentType="text/html; charset=Shift_JIS" %> という記述をしています。 また、conf/web.xmlにShift_JIS用の記述をしています。 <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>javaEncoding</param-name> <param-value>Shift_JIS</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>

    • ベストアンサー
    • Java
  • TomcatのServletについて

    TomcatのServletについて TomcatのServletでエラーが出て困っています。 エラーは405で、「HTTPのGETメソッドは、このURLではサポートされていません。」と表示されます。 このときのServletとweb.xmlは以下の通りです。 -----<Servlet>----------------------------------- public class MyServlet extends HttpServlet { private static final long serialVersionUID = 1L; public MyServlet() { // TODO Auto-generated constructor stub super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain; charset=windows-31j"); response.setCharacterEncoding("windows-31j"); PrintWriter writer = response.getWriter(); writer.println("log check"); } } -------------------------------------------------- -----<web.xml>----------------------------------- <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" metadata-complete="true"> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> <servlet> <servlet-name>Test</servlet-name> <servlet-class>servlet.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Test</servlet-name> <url-pattern>/test.do</url-pattern> </servlet-mapping> </web-app> -------------------------------------------------- テスト用のServletを動かしてみると、 エラーが出てしまって、どうすればいいか困っています。 なんとかご助言をお願いいたします。 まだまだ情報が足りないかもしれません。 そのようなご指摘もお願いいたします。 よろしくお願いいたします。

  • tomcatのweb.xmlについて

    tomcatのweb.xmlについての質問です。 eclipseにサーバーからソースをインポートしてプロジェクトを作成しました。 ビルドパス等の問題は解決したのですが、web.xmlの以下に示す箇所だけどうしてもエラーが解消出来ません。 色々調べてみた結果、要素の順番が悪いのだろうとは理解出来ましたが、順番を変えてもエラーが出続けます。 どこがいけないのでしょうか? web.xmlの記述 <servlet> <init-param> <param-name>browseDirs</param-name> <param-value>false</param-value></init-param> <servlet-name>FileServlet</servlet-name> <servlet-class>jrun.servlet.file.FileServlet</servlet-class> <description>This servlet may override a corresponding FileServlet in SERVER-INF/default-web.xml.If removed, the servlet in default-web.xml will be used.</description> </servlet> エラー内容 要素タイプ "servlet" のコンテンツは "(icon?,servlet-name,display-name?,description?,(servlet-class|jsp-file),init-param*,load-on-startup?,run-as?,security-role-ref*)" と一致しなければなりません。 お詳しい方、何卒ご教示の程願います。

専門家に質問してみよう