HTTP Status 500 - Unable to compile class for JSP

13 respostas
M

Boa noite, GUJs!

Pessoal, creio que minha dúvida seja bastante comum, mas em todas as soluções que encontrei pela internet, não me ajudaram e estou aqui para obter essa resposta.
Estou engatinhando no JSP, acompanhado da FJ-21, e estou com dificuldades para instanciar uma classe em minha página .JSP. Ao chamar a classe Teste.java em minha .JSP, mas a mesma classe Teste.java chamado da Main.java, funciona! Gostaria por favor, que alguém me indicasse onde estou falhando. Obrigado.

Diretórios do projeto:

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="teste.*" %>  
  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%

    Teste t = new Teste();
    t.digite();

%>
</body>
</html>

Teste.java

package teste;

public class Teste {

	public void digite(){
		
		System.out.println("Println .java");
		
	}
	
}

Main.java

package teste;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Teste t = new Teste();
			  t.digite();

	}

}

Erro:

HTTP Status 500 - Unable to compile class for JSP: An error occurred at line: 13 in the jsp file: /TesteJSP/WebContent/index.jsp Teste cannot be resolved to a type 10: <body> 11: <% 12: 13: Teste t = new Teste(); 14: t.digite(); 15: 16: %> An error occurred at line: 13 in the jsp file: /TesteJSP/WebContent/index.jsp Teste cannot be resolved to a type 10: <body> 11: <% 12: 13: Teste t = new Teste(); 14: t.digite(); 15: 16: %> Stacktrace:

type Exception report

message Unable to compile class for JSP: An error occurred at line: 13 in the jsp file: /TesteJSP/WebContent/index.jsp Teste cannot be resolved to a type 10: <body> 11: <% 12: 13: Teste t = new Teste(); 14: t.digite(); 15: 16: %> An error occurred at line: 13 in the jsp file: /TesteJSP/WebContent/index.jsp Teste cannot be resolved to a type 10: <body> 11: <% 12: 13: Teste t = new Teste(); 14: t.digite(); 15: 16: %> Stacktrace:

description The server encountered an internal error (Unable to compile class for JSP: An error occurred at line: 13 in the jsp file: /TesteJSP/WebContent/index.jsp Teste cannot be resolved to a type 10: <body> 11: <% 12: 13: Teste t = new Teste(); 14: t.digite(); 15: 16: %> An error occurred at line: 13 in the jsp file: /TesteJSP/WebContent/index.jsp Teste cannot be resolved to a type 10: <body> 11: <% 12: 13: Teste t = new Teste(); 14: t.digite(); 15: 16: %> Stacktrace:) that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 13 in the jsp file: /TesteJSP/WebContent/index.jsp
Teste cannot be resolved to a type
10: <body>
11: <%
12: 
13:     Teste t = new Teste();
14:     t.digite();
15: 
16: %>


An error occurred at line: 13 in the jsp file: /TesteJSP/WebContent/index.jsp
Teste cannot be resolved to a type
10: <body>
11: <%
12: 
13:     Teste t = new Teste();
14:     t.digite();
15: 
16: %>


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs.

Apache Tomcat/7.0.29

13 Respostas

F

JSP e uma linguagem utilizada para programacao WEB

e as classes normais sao utilizadas apenas para fazer o processamento de algum conteudo e mandar uma resposta para este JSP de uma forma que ele consiga converter em TEXTO.

para vc utilizar esta classe TESTE no jsp faca o seguinte para testar.

crie 1 Dynamic WEB Project

crie 1 pacote por exemplo
TESTE
e dentro deste pacote crie a classe TESTE.JAVA
ensira o codigo dentro de TESTE.JAVA

PUBLIC CLASS TESTE (){

 }
 
 public String imprimir(){
   
  return = "estou imprimindo algo da CLASSE no meu JSP";
 }

no jsp faca o seguinte

<%
<%@ page import="TESTE.TESTE"%> 

TESTE test = new TESTE();

out.println(test.imprimir());
%>

teste o codigo e veja qual o resultado

se algo der errado passe o erro… eu digitei o codigo na mao e nao testei pode ser que haja algum erro
ate+

F

lembrando…
vc executa o seu JSP e nao as CLASSES java ok?

no seu exercicio acima parece estar tudo certo… tente executar a pagina jsp e nao a classe MAIN

M

Obrigado por responder, mas mesmo assim continua o problema. Estou acessando o JSP, com o TOMCAT em serviço, através do endereço: http://localhost:8080/TesteJSP/WebContent/

Alterei a index.jsp para:

&lt;%

    Teste t = new Teste();
    out.println(t.digite());

%&gt;

e a Teste.java:

package teste;

public class Teste {

	public String digite(){
		
		return "Println .java";
		
	}
	
}

Preciso configurar algo a mais além do padrão no TOMCAT/JAVA? Estou ainda procurando soluções porém não obtive sucesso.

J

Olá, Marcelo.

Amigo, pela mensagem de erro fica claro que o Tomcat não achou teu .class. Com certeza é isso, pois indicou o pacote e tudo mais certinho no JSP.

Como você está testando a aplicação? Via IDE? Criando um .war?

M

Olá, jyoshiriro .

Estou testando a aplicação somente através do endereço: http://localhost:8080/TesteJSP/WebContent/ . Ainda não consegui fazer com que a classe .java gerasse o .class, e sobre o .war eu não sei o que é mas irei pesquisar. Estou utlizando o Eclipse Indigo e Tomcat 7.

M

Consegui fazer com que os arquivos .class fossem gerados dentro do diretório WEB-INF/classes modificando local padrão de saída pelo build path:


mas o erro persiste, ou é exibido o novo erro quando autalizo a página algumas vezes:

HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.TesteJSP.WebContent.index_jsp

type Exception report

message java.lang.ClassNotFoundException: org.apache.jsp.TesteJSP.WebContent.index_jsp

description The server encountered an internal error (java.lang.ClassNotFoundException: org.apache.jsp.TesteJSP.WebContent.index_jsp) that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.TesteJSP.WebContent.index_jsp
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause

java.lang.ClassNotFoundException: org.apache.jsp.TesteJSP.WebContent.index_jsp
	java.net.URLClassLoader$1.run(Unknown Source)
	java.net.URLClassLoader$1.run(Unknown Source)
	java.security.AccessController.doPrivileged(Native Method)
	java.net.URLClassLoader.findClass(Unknown Source)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs.

Apache Tomcat/7.0.29
A

Verifique se você está com algum erro no seu projeto, caso contrário, as classes não serão compiladas, e, consequentemente, não serão encontrados os métodos que você criou.

M

Valeu pela resposta, mas não há erros no projeto. Já não sei o que faço, ainda estou a procura da solução e não encontro. Já reinstalei tudo, achando que poderia ter sido algo que desconfigurei como o JAVA, Tomcat e Eclipse. Já testei com o Eclipse Indigo e o Juno. Será que ainda há uma luz no fim do túnel?

A

compacta teu proj ai e me envia para eu dar uma olhada, vou mandar via pm

M

Enviei, andre.froes .

Aguardo sua resposta e ajuda. Abraço.

A

Marcelo, teu programa está todo OK, isso pode significar uma coisa, ao invés de utilizar o JDK no teu eclipse, tu está utilizando a JRE que não faz a compilação (javac).
Acesse no eclipse: Window > Preferences > Java > Installed JREs e veja se o que está apresentando é a JRE ou JDK, se for JRE, remove e coloca o JDK

M

Andre, fiz as alterações porém não surtiu efeito. Vou continuar buscando resposta, caso ainda possa me ajudar, aguardo.


Obrigado, abraço.

M

Obrigado pela paciência e ajuda! Finalmente encontrei o problema!

Por motivo de desencargo de consciência, desativei o serviço MySQL, mesmo sabendo que ele estava trabalhando em outra porta ( 3306 ) e funcionou! Os benditos Tomcat7 e MySQL 5.5 estão em conflito.

Se alguém souber como resolver o problema, agradeço! Ao menos consigo utilizar os elementos do JSP.

Criado 1 de setembro de 2012
Ultima resposta 3 de set. de 2012
Respostas 13
Participantes 4