Boa tarde galera, procurei em todo o forum e em outros lugares tambem mas nenhum dos resultados que encontrei me ajudaram.
Estou começando com desenvolvimento java web e me deparei com um erro numa servlet, sendo este o erro: “Wrapper cannot find servlet class”. Já verifiquei varias vezes o caminho da classe declarada no mapeamento da servlet, já verifiquei o nome do pacote em que a servlet está inserida e aparentemente está tudo correto.
Agradeço se alguem puder me ajudar, vou postar os codigos abaixo:
Código da servlet:
[code]package br.com.agenda.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.agenda.dao.ContatoDAO;
import br.com.agenda.entity.Contato;
public class adicionaContatoServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String nome = request.getParameter(“nome”);
String email = request.getParameter(“email”);
String endereco = request.getParameter(“endereco”);
String datatxt = request.getParameter(“dataNascimento”);
Calendar dataNascimento = null;
try{
Date data = new SimpleDateFormat(“dd/MM/yyyy”).parse(datatxt);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(data);
}catch(Exception e){
e.printStackTrace();
out.println(“Erro de conversao de data”);
}
Contato contato = new Contato(nome, email, endereco, dataNascimento);
ContatoDAO dao = new ContatoDAO();
dao.insereContato(contato);
out.println("<html>");
out.println("<body>");
out.println("Contato"+contato.getNome()+" adicionado com sucesso!");
out.println("</body>");
out.println("</html>");
}
}[/code]
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Agenda</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>adicionaContato</servlet-name>
<servlet-class>br.com.agenda.servlet.adicionaContatoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>adicionaContato</servlet-name>
<url-pattern>/adicionaContato</url-pattern>
</servlet-mapping>
</web-app>
Pagina html que chama a servlet:
[code]
Insert title here Nome:E-mail:
Endereço:
Data de Nascimento:
[/code]
o log do erro é este:
java.lang.ClassNotFoundException: br.com.agenda.servlet.adicionaContatoServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
15:06:04,215 ERROR [[adicionaContato]] Allocate exception for servlet adicionaContato
java.lang.ClassNotFoundException: br.com.agenda.servlet.adicionaContatoServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
sei que este erro é causado por nao encontrar a classe declarada, mas já verifiquei varias vezes a nomeclatura e declaração do pacote e da classe da servlet.
Agradeço a ajuda de quem puder.
Att,
Ulisses