Ho una classe servlet che ho fatto per gestire le funzioni che non voglio ripetere su ogni servlet che ho. Ci sto ancora lavorando (ad esempio, carica ancora index.jsp e non altri file).Dove mettere super() o questo() nelle mie classi
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);
}
}
mia Servlet è il seguente
@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");
}
}
Sono tuttavia, in grado di compilare il mio codice:
SEVERE: Exception while deploying the app [ContentManagement] : (class: contentmanagement/content/EditServlet, method: <init> signature:()V) Constructor must call super() or this()
aggiornamento
Ok, rimuovendo void
sulle mie costruttori e chiamando super();
ho preso la porzione must call first
per andare via, ma sta ancora dicendo che devo chiamare super nonostante sia già stato chiamato.
aggiornamento
non capisco le risposte di seguito .... continuano a dire di mettere super()
all'interno del costruttore, quando i miei esempi mostrano già che sta facendo, ed è la prima riga di codice . Qualsiasi altro consiglio sarebbe apprezzato.
Qualche idea?
Questo è ora un non-problema. Non so cosa risolvesse questo problema, ma con più modifiche e ricostruendo la mia app da zero non ho più riscontrato questo problema
Se si ottiene un errore che afferma che deve essere il primo, hai provato a metterlo prima nel costruttore? –
Un costruttore non ha alcun tipo di reso. Rimuovere il vuoto prima di MyServlet e EditServlet. Il codice viene compilato? –
Stai usando Netbeans? Ricordo una domanda simile su questa stranezza di Netbeans: http://stackoverflow.com/questions/6560988/method-must-call-super-error-in-netbeans In altre parole, la tua build è sporca. Ad esempio, hai rinominato/spostato manualmente i file di classe nel progetto da un file explorer invece che dall'IDE. Questi costruttori sono assolutamente superflui. Il servlet dovrebbe funzionare ugualmente bene senza nessuno di essi (dopo aver pulito il classpath sporco ovviamente). – BalusC