2016-03-25 3 views
0

У меня есть этот сервлет DeleteData.javajavax.servlet.ServletException: Ошибка класса инстанцировании сервлет servlet.DeleteData

package sevenet; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
import java.io.*; 
import java.sql.*; 

@WebServlet("/deleteData") 
public class DeleteData extends HttpServlet { 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // Some code. 
    } 
} 

, который зарегистрирован как показано ниже в web.xml

<servlet> 
    <servlet-name>DeleteData</servlet-name> 
    <servlet-class>servlet.DeleteData</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>DeleteData</servlet-name> 
    <url-pattern>/DeleteData</url-pattern> 
</servlet-mapping> 

я получил ошибку при запуске веб-приложение:

javax.servlet.ServletException: Error instantiating servlet class servlet.DeleteData 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) 
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2500) 
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2489) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    java.lang.Thread.run(Thread.java:745) 

Как это вызвано и как я могу его решить?

+0

использовать сервлет для получения идентификатора и использовать диспетчер отправки или запрос диспетчера, отправить управление на главный сервлет (или) использовать страницу html принять вход с помощью действия формы и отправить управление главному сервлету –

+0

Об ошибке - попытаться удалить сервлет/сервлет сопоставление записей из вашего web.xml, потому что они избыточны (поскольку вы уже используете аннотации) –

+0

Предупреждение: вы смешиваете 2 разных способа регистрации сервлетов. Убедитесь, что вы читаете правильные и обновленные ресурсы при изучении сервлетов. Хорошей отправной точкой является страница вики-сервлетов. Наведите курсор на [сервлеты] под вопросом, пока не появится черный popbox, а затем нажмите на ссылку * info *. – BalusC

ответ

1

Существует опечатка в имени пакета package sevenet; в DeleteData.java

Либо правильное имя пакета в DeleteData.java или обновить имя пакета в web.xml так:

<servlet> 
    <servlet-name>DeleteData</servlet-name> 
    <servlet-class>sevenet.DeleteData</servlet-class> 
</servlet> 
0

Вы забыли аннотацию @Override в doGet(), а имя пакета сервлетов DeleteData неверно в web.xml