eclipse(Ganymede)でjavaサーブレットを実行しようとしたときに問題が発生しました。Java 1.6とApache Tomcat 6.0を実行しています。サーブレットの実行中の問題
- 停止Tomcatを:ここで
は私がやっているものです。
- 新しい動的Webプロジェクト。
- TestProject
- 使用し、デフォルトのオプションプロジェクトコール:プロジェクトを右クリックし、新しいサーブレット
- 使用し、デフォルトを選択し、コンテキスト= "TestProject"、コンテキストDirectoryは= "のWebContent"、Javaのソースディレクトリは= "SRC"
- を他のすべてのオプションは、サーブレットのdefult
- 変更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が実行され、ページを提供していて、正しいパスがあることがわかります。
デフォルトのパッケージではなく、サーブレットをパッケージに入れてみましたか?また、サーブレットはどのようにweb.xmlファイルにマップされていますか? – pgb
Pojectが自動的に構築されるように設定されていませんでした。 メニュー>プロジェクト>自動ビルド。 –