Falha ao compilar JSP tomcat 7 [Resolvido]

2 respostas
D
Ola pessoal, estou com um erro ao tentar rodar um jsp simples,
type Exception report

message

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

exception

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

An error occurred at line: 1 in the generated java file
The type javax.persistence.EntityManager cannot be resolved. It is indirectly referenced from required .class files

An error occurred at line: 18 in the generated java file
Only a type can be imported. javax.persistence.EntityManager resolves to a package

An error occurred at line: 20 in the jsp file: /contatoListar.jsp
EntityManager cannot be resolved to a type
17: 	<hr />
18: 	<h2>Listagem de Contatos</h2>
19: 	<%
20: 	    EntityManager em = EMLocal.getEntityManager();
21: 	    em.getTransaction().begin();
22: 
23: 	    FilmeDao dao = DaoFactory.getFilmeDao();


An error occurred at line: 20 in the jsp file: /contatoListar.jsp
The method getEntityManager() from the type EMLocal refers to the missing type EntityManager
17: 	<hr />
18: 	<h2>Listagem de Contatos</h2>
19: 	<%
20: 	    EntityManager em = EMLocal.getEntityManager();
21: 	    em.getTransaction().begin();
22: 
23: 	    FilmeDao dao = DaoFactory.getFilmeDao();


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)
Eu adicionei as libs do hibernate dentro de uma pasta lib que criei na raiz do projeto.

2 Respostas

A

Só um detalhe: um JSP que usa EntityManager está longe de ser “simples” pra mim :wink:

Voltando ao seu problema: a classe não encontrada foi a EntityManager, ela é da própria especificação Java e não do Hibernate. Olha pelo pacote:

javax.persistence.EntityManager

O Tomcat 7 não tem suporte para EJBs, então ele não vem com os jars necessários. Ele não foi feito para rodar EJBs. Você ou vai usar alguma outra ferramenta de suporte (tipo o OpenEJB) ou mudar para um servidor de aplicações (tipo Glassfish, JBoss, etc).

D

Certo Alys, elas estavam todas no meu path. Consegui encontrar o problema.
Fiz o seguinte, eu estava adicionando os jars dentro de um folder lib que eu criei no projeto, dai alterei os path dessa lib para a WebContente > WEB-INF > lib, compilou e executou normalmente.
Agora não sei o porque, pois quando olhei no deploy do tomcat estavam todos os jars dentro de webapps > minhaAplicacao > meuJars.jar, apos a alteraçao as libs foram para a lib do WebContent.

Mas ainda não entendi o pq ele rodou na WebContente > WEB-INF > lib e não na outra.

Criado 18 de novembro de 2012
Ultima resposta 20 de nov. de 2012
Respostas 2
Participantes 2