Agradeço se alguem conseguir me ajudar.
Tenho uma aplicação relativamente grande de medicina funcionando bem com Spring 2.5, jpa, hibernate 3, jsf 1.2, richfaces 3.3 e servidor glassfish
Acontece que resolvi trabalhar nela melhorando performace, usabilidade e outras implementações. Resolvi tambem fazer um upgrade dos framewoks mudando pra Spring 3, jpa 2, jsf 2 com primeface e icefaces, ate aqui não tive problema de confrito ou cousa parecida a sistema faz o deploy numa boa. SO QUE: quando tento logar na aplicação fazendo o primeiro acesso a banco de dados para recuperar login/senha obtenho o seguinte erro:
“Could not open JPA EntityManager for transaction” / " Exception Description: Cannot use an EntityTransaction while using JTA."
O que é mais intrigante pra mim que isso so acontece com a aplicação rodando (WEB). Nada disso ocorre quanto faço o messo procedimento usando Junit ou ate mesmo rodando de uma Classe Principal.
Desde ja agradeço quem puder me ajudar.
segue os meus arquivos de configuraão e fragmento das classes envolvidas:
WEB.xml
<?xml version="1.0" encoding="UTF-8"?> FilterAutenticacao medicina.controle.FilterAutenticacao FilterAutenticacao /pages/telas/* openEntityManager org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:applicationContext.xml com.icesoft.faces.synchronousUpdate false com.icesoft.faces.doJSFStateManagement true org.jboss.seam.core.init.debug true com.icesoft.faces.uploadDirectory / com.icesoft.faces.standardRequestScope true javax.faces.PROJECT_STAGE Development javax.faces.STATE_SAVING_METHOD client facelets.DEVELOPMENT true javax.faces.DEFAULT_SUFFIX .xhtml Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.jsf 30 index.jspCONFIGRAÇÂO DO SPRING
<?xml version="1.0" encoding="UTF-8"?><tx:annotation-driven transaction-manager=“transactionManager” />
Persistence.xml
<?xml version="1.0" encoding="UTF-8"?> org.eclipse.persistence.jpa.PersistenceProvider medicina.persistencia.Usuario medicina.persistencia.RazaoPessoa medicina.persistencia.Empresa medicina.persistencia.ItemMenu medicina.persistencia.LogAcesso medicina.persistencia.LogOperacao medicina.persistencia.Menu medicina.persistencia.Perfil medicina.persistencia.Permissao medicina.persistencia.Profissional medicina.persistencia.UsuariosAcessaEmpresas medicina.persistencia.Clinica medicina.persistencia.OpcaoItemMenu trueCARREGA AS CONFIGURAÇÕES DO SPRING
public class SpringBeans {
private static ApplicationContext springContext;
public static synchronized ApplicationContext getSpringContext(){
if (springContext == null){
springContext = new ClassPathXmlApplicationContext("/medicina/recursos/applicationContext.xml");
}
return springContext;
}
public static UsuarioRepository getUsuarioRepository() {
return ((UsuarioRepository) springContext.getBean(“usuario”));
}
public static MenuRepository getMenuRepository() {
return ((MenuRepository) springContext.getBean(“menu”));
}
public static ItemMenuRepository getItemMenuRepository() {
return ((ItemMenuRepository) springContext.getBean(“itemMenu”));
}
public static OpcaoItemMenuRepository getOpcaoItemMenuRepository() {
return ((OpcaoItemMenuRepository) springContext.getBean(“opcaoItemMenu”));
}
public static PerfilRepository getPerfilRepository() {
return ((PerfilRepository) springContext.getBean(“perfil”));
}
}
DAO GENERICO
@Transactional(readOnly = true)
@Repository()
public class GenericDao<PersistentObject, IDType extends Serializable> implements Dao<PersistentObject, IDType> {
private EntityManager em;
//Injeta EntityManager atravez do Spring
@PersistenceContext()
public void setEntityManager(EntityManager em) {
this.em = em;
}
//Obtem os EntityManager
public EntityManager getEntityManager() {
return em;
}
@Override
public PersistentObject buscarPorNamedQuery(String queryNome, Map<String, Object> params) {
Query query = em.createNamedQuery(queryNome);
for (String key : params.keySet()) {
query.setParameter(key, params.get(key));
}
return (PersistentObject) query.getSingleResult();
}
@Override
public PersistentObject buscarPorId(Class classe, IDType id) {
return em.find(classe, id);
}
@Override
public void close() {
{
em.close();
}
}
}
BEAN GERENCIADO DE LOGIN
@ManagedBean(name=“login”)
@RequestScoped()
public class MBLogin {
//@ManagedProperty(value="#{usuario}")
private Usuario usuario;
private int withDivEsquerdo = 500;
private int withDivDireito = 500;
private String navegacao = “/pages/telas/mso”;//?faces-redirect=true
public MBLogin(){
setUsuario(new Usuario());
}
public boolean validacao() {
//implementar
boolean valido = true;
return valido;
}
public String logar(){
SpringBeans.getSpringContext();
if (validacao() == false) {
return “login”;
} else {
try {
setUsuario(SpringBeans.getUsuarioRepository().buscarLoginSenha(getUsuario().getLogin(), Criptografia.criptografar(getUsuario().getSenha()),false,true));
//Coloca o Usuario na sessão
HttpServletRequest requestUser = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
requestUser.getSession().setAttribute(“userLogado”, getUsuario());
} catch (Exception e) {
return “login”;
}
return “/pages/telas/mso”;
}
}
Java Básico » Problemas com JSP e JSF » Ir para mensagem *****
Ola pessoal, sou novo aqui no forum e estou dando os primeiros passos no java e gostaria se possivel alguem me ajudasse a resolver um probleminha q estou tendo. Estou desenvolvendo uma aplicação web eclipse usanda: MYSQL, Heibernate e JSF. Meu grande problema são as JSPs com o JSF, Logo de cara dou um include na minha pagina principal e dai endiante tudo de errado acontece, ja tentei de tudo e não sei como resolver. Segue o erro e os fontes :
http://localhost:8080/catalogo/index.jsp
Errro******
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /index.jsp:4
1: <%@page pageEncoding=“Cp1252” contentType=“text/html; charset=Cp1252” %>
2:
3:
4: <jsp:include page=“menu.jsf” />
5:
6:
7:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
org.apache.jasper.JasperException: Exception in JSP: /menu.jsp:11
8:
9:
10:
11: <f:view>
12: <h:form>
13: <h:commandLink value=“Listar Revistas Cadastradas”
14: action=“mostrarrevistas”>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
org.apache.jsp.index_jsp._jspService(index_jsp.java:46)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:9
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.ServletException: Cannot find FacesContext
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
org.apache.jsp.menu_jsp._jspService(menu_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:9
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
org.apache.jsp.index_jsp._jspService(index_jsp.java:46)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:9
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.jsp.JspException: Cannot find FacesContext
javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:405)
com.sun.faces.taglib.jsf_core.ViewTag.doStartTag(ViewTag.java:105)
org.apache.jsp.menu_jsp._jspx_meth_f_005fview_005f0(menu_jsp.java:95)
org.apache.jsp.menu_jsp._jspService(menu_jsp.java:69)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:9
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
org.apache.jsp.index_jsp._jspService(index_jsp.java:46)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:9
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.
WEB.XML******
<?xml version="1.0" encoding="UTF-8"?>
Catalogo
com.sun.faces.verifyObjects
false
com.sun.faces.validateXml
true
javax.faces.STATE_SAVING_METHOD
client
Faces Servlet
javax.faces.webapp.FacesServlet
1
Faces Servlet
/faces/
Faces Servlet
.jsf
30
BASIC
faces-config.xml**
<?xml version="1.0" encoding="UTF-8"?> revistaControle br.com.catalogo.controle.RevistaControle session mostrarrevistas /pages/assinaturas/todasrevistas.jsp**index.jsp
<%@page pageEncoding=“Cp1252” contentType=“text/html; charset=Cp1252” %>
Catálogo de Revistas
******menu.jsp
<%@ page contentType=“text/html; charset=Cp1252” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>