私はサーブレットのクラスを持っています。私はまだそれに取り組んでいます(つまり、それはまだindex.jspだけをロードし、他のファイルはロードしません)。私のコンストラクタにvoid
の除去、私のクラスにsuper()またはthis()を入れる場所
[OK]を
SEVERE: Exception while deploying the app [ContentManagement] : (class: contentmanagement/content/EditServlet, method: <init> signature:()V) Constructor must call super() or this()
アップデート:私は私のコードをコンパイルすることができない、しかしだ
@WebServlet(name = "EditServlet", urlPatterns = {"/content/edit"})
public class EditServlet extends Library.MyServlet {
public EditServlet() {
super();
}
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("EditServlet loaded");
}
}
を次のように
public class MyServlet extends HttpServlet {
public MyServlet() {
super();
}
public void loadView (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
response.setContentType("text/html;charset=UTF-8");
System.out.println("MyServlet::LoadView() success");
dispatcher.forward(request, response);
}
}
私のサーブレットがあります電話:must call first
の部分が消えてしまったが、まだ呼び出されているにもかかわらず、私はスーパーに電話しなければならないと言っている。
更新
私は彼らが私の例が既に行われていることを示したときに、コンストラクタ内super()
を置くために言っておく、それがコードの最初の行です....以下の応答を理解していません。他のアドバイスは高く評価されます。
どのような考えですか?
これは現在問題ではありません。私は何がこの問題を解決したのかはわかりませんが、複数の変更を加えてアプリケーションを再構築することで、私はもはやこの問題を経験しません。
最初にする必要があるというエラーが表示された場合は、最初にコンストラクタに入れてみましたか? –
コンストラクタには戻り値の型がありません。 MyServletとEditServletの前にvoidを削除してください。コードはコンパイルされますか? –
Netbeansを使用していますか?私はこのNetbeansの奇妙なことについての同様の質問を思い出してください:http://stackoverflow.com/questions/6560988/method-must-call-super-error-in-netbeansつまり、あなたのビルドは汚いです。たとえば、IDEではなくファイルエクスプローラでプロジェクト内のクラスファイルの名前を手動で変更したり移動したりしています。それらのコンストラクタは、まったく必要ありません。サーブレットは(あなたがあなたの汚れたクラスパスをきれいにした後で)どれもなくても同じようにうまくいくはずです。 – BalusC