Problema com transaction do Spring

0 respostas
C

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.jsp

CONFIGRAÇÂ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 true

CARREGA 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;

}
<a class="mention" href="/u/override">@Override</a>

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();

}
<a class="mention" href="/u/override">@Override</a>

public PersistentObject buscarPorId(Class classe, IDType id) {

return em.find(classe, id);

}
<a class="mention" href="/u/override">@Override</a>

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” %>

Criado 17 de dezembro de 2010
Respostas 0
Participantes 1