2010-11-22 7 views
1

私は最初のサーブレットをj2eeのEclipse 7.0で実行するようにしようとしていますが、私が間違っていることを理解できません。私はこのようなプロジェクト全体を実行します:私のプロジェクト - > Run As-> Run on Serverを右クリックすると、index.htmlファイルがブラウザに表示されますが、 "Continue"を押すと、私の最初のサーブレットを動作させるには?

HTTPステータス404 -/PDPJ_L5 /ハロー - 要求されたリソース(/ PDPJ_L5 /こんにちは) 利用できません。

問題は、フォームタグのアクション属性、またはWeb記述子ファイルにあると考えられます。私が間違ってやっていること、私のプロジェクトを修復する方法を教えてください。ありがとう。

PDPJ_L5

  • JAX-WS Webサービス
  • デプロイメント記述:PDPJ_L5
  • のJavaリソース:SRCサーブレットが含まれています。ここ

    は私のプロジェクト(PDPJ_L5)ディレクトリ構造でありますHello.javaサーブレットを含むパッケージ

  • JavaScriptリソース
  • ビルド
  • META-INF
  • libフォルダとWEB-INF、私のindex.htmlとweb.xml

index.htmlの内容:ここ

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Some title</title> 
</head> 
<body> 
<H1 ALIGN="CENTER">Choose your option:</H1> 
<form action="http://localhost:8080/PDPJ_L5/hello" method="GET"> 
    <center> 
     <INPUT TYPE="RADIO" NAME="group" VALUE="one">ONE<BR> 
     <INPUT TYPE="RADIO" NAME="group" VALUE="two">TWO<BR><BR> 
     <INPUT TYPE="SUBMIT" VALUE="Continue"> 
    </center> 
</form> 
</body> 
</html> 

がありますHello.javaサーブレット:

package servlets; 

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; 

/** 
* Servlet implementation class Hello 
*/ 
public class Hello extends HttpServlet 
{ 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public Hello() 
    { 
     super(); 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     response.setContentType("text/html"); 

     PrintWriter out = response.getWriter(); 
     out.println("<HEAD><TITLE>Success</HEAD><BODY>"); 
     out.println("<h1> It works </h1>"); 
     out.println("</BODY>"); 
     out.close(); 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     doGet(request, response); 
    } 

} 

とweb.xmlファイル:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-application_2_3.dtd"> 

<web-app> 
    <servlet> 
     <servlet-name>Hello</servlet-name> 
     <servlet-class>servlets.Hello</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Hello</servlet-name> 
     <url-pattern>/hello</url-pattern> 
    </servlet-mapping> 
</web-app>  
+0

デフォルトのweb.xml Eclipseが作成したサーブレット2.3 * http://java.sun.com/dtd/web-application_2_3.dtd*に驚いていますか?私は〜web-app_2_5.xsd * – JoseK

+0

@Jose:1998年に廃止された '

'タグの存在と'90年代スタイルの大文字のHTMLタグの使用によって証明された、ずっと古いチュートリアル/本を読んでいる大きなチャンスです。 Tomcat 7はServlet 3.0対応のコンテナなので、私はとにかくServlet 3.0を使用します。 – BalusC

答えて

0

私の問題の解決策が見つかりました。

私はjarコマンドでwarアーカイブを構築し、tomcatのwebappsフォルダに入れました。この方法で動作しています。

残っている唯一の問題は、サーバー上で実行してEclipseで動作していないことですが、このように動作します。

ありがとうございました。

0

インデックスページが読み込まれると、実際にどのポートが使用されていますか?あなたのハイパーリンクは8080になりますが、私は "Run on Server"がランダムなポートにバインドする一時的なサーバーを起動していると考えています。

+0

インデックスページが読み込まれるとき、ブラウザのアドレスはhttp:// localhost:8080/PDPJ_L5 /です。したがって、それは8080ポートです – DaJackal

0

Tomcatのログファイルは何を表していますか(またはEclipseのコンソールからTomcatインスタンスを実行している場合)?これは通常、サーブレットを初期化したり要求を処理したりするときに例外がスローされたときに発生します。

+0

ちょうどINFOです、警告も例外もありません – DaJackal

+0

詳細が必要です。どうやってTomcatを始めるのですか? Eclipse内または.batファイルを実行してどのログファイルを見ましたか? –

+0

私はTomcat ServerをEclipseで起動し、サーバ上でRunを実行し、Eclipseからコンソールビューを見た。 – DaJackal

0

右クリックして>プロジェクトをビルドしたとします。

(Windowsエクスプローラの)Eclipseワークスペースで、実際のクラスファイル(PDPJ_L5/build/classes/servlets/Hello.class)を見つけることができますか?それは存在するのだろうか?

+0

はい、存在します。 – DaJackal

関連する問題