簡単なサーブレットを作成してTomcatサーバーにデプロイしていますが、次のエラーが表示されます。
HTTPステータス500-サーブレットクラスpkg.coreServletのインスタンス化エラー
Tomcatサーバー上のファイル構造:
webapps
|
- aarya
|
- WEB-INF
|
-web.xml
-src(folder)
|
-pkg
|
-coreServlet.class
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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>aaryaservlet</servlet-name>
<servlet-class>pkg.coreServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>aaryaservlet</servlet-name>
<url-pattern>/coreServlet</url-pattern>
</servlet-mapping>
</web-app>
coreServlet.Java:
package pkg;
import Java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class coreServlet extends HttpServlet
{
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
PrintWriter out = res.getWriter();
res.setContentType("text/html");
out.println("this is First servlet Example ");
}
}
私が与えているURLはhttp://localhost:8080/aarya/coreServlet
Tomcatを再起動してみましたが、同じエラーが発生します。どこで間違っていますか?
Src-フォルダーをWEB-INFディレクトリーに置かないでください!!
変更
private static final long serialVersionUID = 1L;
などの他の値に
private static final long serialVersionUID = 102831973239L;
eclipseで自動的に生成することもできます。
アプリ内の各サーブレットには一意のidがあり、Tomcatは同じidを持つ2つのサーブレットで問題を引き起こすためです...
私の場合、private static final long serialVersionUID = 1L;
行がないと同じエラーが発生しました。行を追加しましたが、うまくいきました!
Web.xmlの<web-app>タグを閉じましたか?投稿した内容から、終了タグが欠落しているようです。
サーブレットクラスは、WEB-INF/srcではなくWEB-INF/classesにある必要があります。
これを試してください:)
前:-
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
後:-
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>operation.TestServlet</servlet-class>
</servlet>
サーブレットのインスタンス化に問題がありました。私はプロジェクトをきれいにし、それは私のために働いた。 Eclipseメニューで、[プロジェクト]-> [クリーン]に移動します。動作するはずです。
以下を確認してください。
private static final long serialVersionUID = 1L;
はクラス内にあるはずです(<servlet-class>MyClass</servlet-class>
)。