Meus arquivos
JPAFilter
@WebFilter(servletNames={“Faces Servlet”})
public class JPAFilter implements Filter{
private EntityManagerFactory factory;
<a class="mention" href="/u/override">@Override</a>
public void destroy() {
// TODO Auto-generated method stub
this.factory.close();
}
<a class="mention" href="/u/override">@Override</a>
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
EntityManager entityManager = this.factory.createEntityManager();
req.setAttribute(“entityManager”, entityManager);
chain.doFilter(req, res);
try{
entityManager.getTransaction().begin();
entityManager.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
entityManager.getTransaction().rollback();
}finally{
entityManager.close();
}
}
<a class="mention" href="/u/override">@Override</a>
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
this.factory = Persistence.createEntityManagerFactory(“copadomundo”);
}
}
Meu Persistence.xml
<persistence-unit name="copadomundo" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="smtadm" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/copadomundo" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
Meu BEAN
@ManagedBean
public class SelecaoBean {
@ManagedProperty(value = “#{entityManager}”)
@PersistenceUnit(unitName=“copadomundo”)
private EntityManager entityManager;
private Selecao selecao = new Selecao();
private List selecoes;
public void adiciona() {
System.out.println(this.entityManager);
SelecaoRepository repository = new SelecaoRepository(this.entityManager);
repository.adiciona(this.selecao);
this.selecao = new Selecao();
this.selecoes = null;
}
public List getSelecoes() {
if(this.selecoes == null){
System.out.println(“CHAMANDO O REPOSITORIO”);
SelecaoRepository repository = new SelecaoRepository(this.entityManager);
this.selecoes = repository.getSelecoes();
}
return this.selecoes;
}
Quando rodo o GlassFixh 3.0 aparece o erro abaixo:
Grave: WebModule[/CopaDoMundo]PWC1270: Exception starting filter filtros.JPAFilter
java.lang.NoClassDefFoundError: org/hibernate/MappingException
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:124)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at filtros.JPAFilter.init(JPAFilter.java:54)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:120)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4625)
…
Caused by: java.lang.ClassNotFoundException: org.hibernate.MappingException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
…