2009-04-23 11 views
0

eclipse(Ganymede)でjavaサーブレットを実行しようとしたときに問題が発生しました。Java 1.6とApache Tomcat 6.0を実行しています。サーブレットの実行中の問題

  1. 停止Tomcatを:ここで

    は私がやっているものです。

  2. 新しい動的Webプロジェクト。
  3. TestProject
  4. 使用し、デフォルトのオプションプロジェクトコール:プロジェクトを右クリックし、新しいサーブレット
  5. 使用し、デフォルトを選択し、コンテキスト= "TestProject"、コンテキストDirectoryは= "のWebContent"、Javaのソースディレクトリは= "SRC"
  6. を他のすべてのオプションは、サーブレットのdefult
  7. 変更URLマッピングは、コード

ハロー/にある「HelloTest」クラスをパッケージと呼んで次のようである(私は他のdoGetとdoPostメソッドのメソッドのすべてをのみ編集したあります属テッド):

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 HelloTest 
*/ 
public class HelloTest extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public HelloTest() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     PrintWriter writer = response.getWriter(); 
     writer.write("Hello World"); 
     writer.flush(); 
    } 

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

} 

ここでは、私はプロジェクトを実行しようとする方法である: 1.プロジェクトを保存 2.プロジェクトを右クリックして、サーバー上で実行を選択します。 3.既存のTomcatサーバー を選択します。4. [完了]をクリックします。

http://localhost:8080/TestProject/hello にアクセスしようとすると、クラスが見つからないという例外が表示されます。

javax.servlet.ServletException: Wrapper cannot find servlet class HelloTest or a class it depends on 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
java.lang.Thread.run(Thread.java:619) 

根本原因

java.lang.ClassNotFoundException: HelloTest 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 

私が何か間違ったことをやっていますか?

test.jspという.jspページを追加すると完全に表示されるので、Tomcatが実行され、ページを提供していて、正しいパスがあることがわかります。

+0

デフォルトのパッケージではなく、サーブレットをパッケージに入れてみましたか?また、サーブレットはどのようにweb.xmlファイルにマップされていますか? – pgb

+1

Pojectが自動的に構築されるように設定されていませんでした。 メニュー>プロジェクト>自動ビルド。 –

答えて

2

まず、クラスが正しくデプロイされているかどうかを確認します。 this questionも参照してください。

関連する問題