Mensagem Servlet?

5 respostas
Marcelo.d2

Olá pessoal, blzz

Qdo chamo minha servlet, o tomcat me retorna essa mensagem de erro,
alguém sabe o q é???

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

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

exception 

javax.servlet.ServletException: Error allocating a servlet instance
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	java.lang.Thread.run(Thread.java:534)


root cause 

java.lang.NoClassDefFoundError: servlets/Gatec (wrong name: Gatec)
	java.lang.ClassLoader.defineClass0(Native Method)
	java.lang.ClassLoader.defineClass(ClassLoader.java:539)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	java.lang.Thread.run(Thread.java:534)


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

5 Respostas

kartler

Esse pacote existe ???

servlets/Gatec
Marcelo.d2

Esse pacote ñ existe, mas ñ sei se tem a ver, o meu web.xml q fica dentro da \WEB-INF está deste jeito.

<?xml version="1.0"?>

&lt;!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"&gt;

&lt;web-app&gt;
	&lt;display-name&gt;JasperReports&lt;/display-name&gt;

	&lt;servlet&gt;
		&lt;servlet-name&gt;Gatec&lt;/servlet-name&gt;
		&lt;servlet-class&gt;servlets.Gatec&lt;/servlet-class&gt;
	&lt;/servlet&gt;

	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;Gatec&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/gatec&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;

	&lt;welcome-file-list&gt;
		&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
	&lt;/welcome-file-list&gt;
	&lt;login-config&gt;
		&lt;auth-method&gt;BASIC&lt;/auth-method&gt;
	&lt;/login-config&gt;
&lt;/web-app&gt;
_fs

A exceção

java.lang.NoClassDefFoundError

Indica que o ClassLoader não foi capaz de encontrar a classe que está tentando acessar.
Então:
a. verifique se este pacote com esta classe está dentro de WEB-INF/classes
ou
b. verifique se o .jar que contém esta classe está dentro de WEB-INF/lib

Marcelo.d2

Pessoal, a servlet q estou usando é está logo abaixo, vc por acaso teriam uma similar ou um JSP tbém, pq estou tentando ler um *.jasper e mostrar no browser ... só isso quero fazer, mas estou com muita dificuldade ainda.

abraços;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.view.*;

import java.sql.*;
import org.apache.commons.logging.*;
import java.io.*;
import java.util.*;


public class Gatec extends TagSupport
{
private String sourceFileName = "C:\\Arquivos de programas\\Apache Software Foundation\\Tomcat5.0\\webapps\\web_consultas\\reports\\gatec.jasper";
private String destinationFileName = "C:\\Arquivos de programas\\Apache Software Foundation\\Tomcat5.0\\webapps\\web_consultas\\reports\\gatec.pdf";


public void setSourceFileName(String sourceFileName)
{
this.sourceFileName = sourceFileName;

}
public void setDestinationFileName(String destinationFileName)
{
this.destinationFileName = destinationFileName;
}


public int doStartTag()
{
return SKIP_BODY;
}

public int doEndTag()
{
try
{

//Passaggio parametri da passare al jasper.
Map parameters = new HashMap();
parameters.put("param1", new Integer(1));


//Preparazione del file da stampare (in questa fase si esegue la query e si inseriscono
//i valori estratti dalla query)
JasperPrint jasperPrint=JasperFillManager.fillReport(sourceFileName, parameters, getConnection());


//Creazione del file PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, destinationFileName);


//Streaming a video del PDF
pageContext.getOut().print(JasperExportManager.exportReportToPdf(jasperPrint));

}


catch(Exception e)
{}


return EVAL_PAGE;
}


/**Metodo per creare la connessione al DB*/
private static Connection getConnection() throws ClassNotFoundException, SQLException {
//Change these settings according to your local configuration

String driver = "oracle.jdbc.driver.OracleDriver";
String connectString = "jdbc:Oracle:thin:@server:1521:oracle";
String user = "user";
String password = "passwd";

Class.forName(driver);
Connection conn = DriverManager.getConnection(connectString, user, password);
return conn;
}

}
JGcon

Marcelo,

crie o pacote servlets e coloque seu servlet dentro.

Por fim, no web.xml, insira:

&lt;!-- Indica ao Tomcat as Servlets da nossa aplicacao --&gt; &lt;servlet&gt; &lt;servlet-name&gt;SuaClasse&lt;/servlet-name&gt; &lt;servlet-class&gt;servlets.SuaClasse&lt;/servlet-class&gt; &lt;/servlet&gt;

e veja ai se funciona.

Abraço.

João Gabriel Campos.

Criado 8 de julho de 2005
Ultima resposta 18 de jul. de 2007
Respostas 5
Participantes 4