Porque está ocorrendo este erro?

6 respostas
somma
type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Wrapper cannot find servlet class CadastrarAluno or a class it depends on
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	java.lang.Thread.run(Thread.java:595)


root cause 

java.lang.ClassNotFoundException: CadastrarAluno
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	java.lang.Thread.run(Thread.java:595)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.

???

6 Respostas

Flasoft

Provavelmente a classe CadastrarAluno não existe ou não está acessivel…

somma

Pode ser erro de diretório?

No web.xml criei o seguinte:

<servlet>
        <servlet-name>CadastrarAluno</servlet-name>
        <servlet-class>CadastrarAluno</servlet-class>
     </servlet>
     <servlet-mapping>
        <servlet-name>CadastrarAluno</servlet-name>
        <url-pattern>/teste/CadastrarAluno</url-pattern>
    </servlet-mapping>

Uma dúvida: Eu posso ter mais do que um ?

exemplo:

<servlet>
        <servlet-name>CadastrarAluno</servlet-name>
        <servlet-class>CadastrarAluno</servlet-class>
     </servlet>
     <servlet-mapping>
        <servlet-name>CadastrarAluno</servlet-name>
        <url-pattern>/teste/CadastrarAluno</url-pattern>
    </servlet-mapping>

     <!-- Criar novos servlets web.xml-->
<servlet>
</servlet>

em /teste/ é o nome do package que criei.

O caminho que está no web.xml está correto?

Esta é a classe CadastrarAluno.java

package teste;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;

public class CadastrarAluno extends HttpServlet{
  public void doPost (HttpServletRequest request,
		  HttpServletResponse response) throws ServletException, IOException 
		  {
	       String cadAluRa, cadAluno, cadAluCur;

	       //Obtendo os dados do formulario
	       cadAluRa = request.getParameter("cadAluRa");
                       cadAluno = request.getParameter("cadAluno");
	       cadAluCur = request.getParameter("cadAluCur");

	       
	       // Criando o objeto Funcionario
	       Aluno a1 = new Aluno(cadAluRa,cadAluno,cadAluCur,0);
	          
	       
	       //Retornando os valores lidos
	       PrintWriter out = response.getWriter();
	       response.setContentType("text/html");
	       
	       out.println("<HTML>");
	       out.println("<HEAD><TITLE>Testando Servlet</TITLE></HEAD>");
	       out.println("<BODY>");
	       out.println("<H1> Resultados </H1>");
	       out.println("<p>Ra: " + a1.getRa() + "</p>");
	       out.println("<p>Nome: " + a1.getNome() + "</p>");
	       out.println("<p>Curso: " + a1.getCurso() + "</p>");
               //out.println("<p>Periodo: " + a1.getPeriodo() + "</p>");
	       out.println("</BODY>");
	       out.println("</HTML>");
	}
}
marcelo_mococa

tente assim

<servlet>
         <servlet-name>CadastrarAluno</servlet-name>
         <servlet-class>teste.CadastrarAluno</servlet-class>
   </servlet>
somma

Este trecho de código da erro de RUN no NetBeans.

Quando eu compilo sem executar ele dá o seguinte erro:

Type Status report

message: Servlet CadastrarAluno is not available

description: The requested resource (Servlet CadastrarAluno is not available) is not available.

marcelo_mococa

tentou mudar o servlet-class?

vc deve especificar o nome do teu servlet juntamento com seu pacote.
no caso teste.CadastrarAluno

somma

Perfeito Marcelo…

era isso mesmo agora esta funcionando.

Muito Obrigado…

E vou avaliar vc com nota: 5.

Obrigado mesmo.

Criado 13 de setembro de 2006
Ultima resposta 14 de set. de 2006
Respostas 6
Participantes 3