SessionFactory e web.xml

1 resposta
C

Ola à todos sou novo no GUJ, mais acredito que terei aqui uma solução .
Estou seguindo o livro ( programação java para web).
O problema é que não consigo resolver o que esta ocorrendo quando dou um run server …
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

19/03/2012 19:39:05 org.apache.catalina.core.AprLifecycleListener init

INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:/Program Files/Java/jre6/lib/i386;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Java\jdk1.6.0_22\bin;;C:\eclipse;;.

19/03/2012 19:39:06 org.apache.tomcat.util.digester.SetPropertiesRule begin

AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property source to org.eclipse.jst.jee.server:FinanceiroWeb did not find a matching property.

19/03/2012 19:39:06 org.apache.coyote.AbstractProtocolHandler init

INFO: Initializing ProtocolHandler [“http-bio-8080”]

19/03/2012 19:39:06 org.apache.coyote.AbstractProtocolHandler init

INFO: Initializing ProtocolHandler [“ajp-bio-8009”]

19/03/2012 19:39:06 org.apache.catalina.startup.Catalina load

INFO: Initialization processed in 889 ms

19/03/2012 19:39:06 org.apache.catalina.core.StandardService startInternal

INFO: Starting service Catalina

19/03/2012 19:39:06 org.apache.catalina.core.StandardEngine startInternal

INFO: Starting Servlet Engine: Apache Tomcat/7.0.12

19/03/2012 19:39:07 com.sun.faces.config.ConfigureListener contextInitialized

INFO: Inicializando Mojarra 2.0.3 (SNAPSHOT 20100624) para o contexto /FinanceiroWeb

19/03/2012 19:39:08 com.sun.faces.spi.InjectionProviderFactory createInstance

INFO: JSF1048: Anotações PostConstruct/PreDestroy presentes.  Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.

19/03/2012 19:39:08 com.sun.faces.mgbean.BeanManager addBean

AVISO: JSF1074: O bean gerenciado denominado usuarioBean  foi registrado.  Substituindo o tipo de classe do bean gerenciado financeiro.web.UsuarioBean por financeiro.web.UsuarioBean.

19/03/2012 19:39:08 com.sun.faces.config.ConfigureListener$WebConfigResourceMonitor$Monitor 

INFO: Monitoring jndi:/localhost/FinanceiroWeb/WEB-INF/faces-config.xml for modifications

249 [Thread-1] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final

262 [Thread-1] INFO org.hibernate.cfg.Environment - Hibernate 3.6.0.Final

265 [Thread-1] INFO org.hibernate.cfg.Environment - hibernate.properties not found

270 [Thread-1] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist

277 [Thread-1] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling

424 [Thread-1] INFO org.hibernate.cfg.Configuration - configuring from resource: hibernate.cfg.xml

425 [Thread-1] INFO org.hibernate.cfg.Configuration - Configuration resource: hibernate.cfg.xml

487 [Thread-1] WARN org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace <a href="http://hibernate.sourceforge.net/">http://hibernate.sourceforge.net/</a>. Use namespace <a href="http://www.hibernate.org/dtd/">http://www.hibernate.org/dtd/</a> instead. Refer to Hibernate 3.6 Migration Guide!

548 [Thread-1] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null

631 [Thread-1] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: financeiro.usuario.Usuario

723 [Thread-1] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity financeiro.usuario.Usuario on table Usuario

( Criação inicial do objeto SessionFactory falhou. Erro: org.hibernate.AnnotationException: No identifier specified for entity: financeiro.usuario.Usuario

19/03/2012 19:39:09 org.apache.catalina.core.StandardContext filterStart

GRAVE: Exception starting filter conexaoFilter )

java.lang.ExceptionInInitializerError

at financeiro.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:17)

at financeiro.util.HibernateUtil.(HibernateUtil.java:8)

at financeiro.web.filter.ConexaoHibernateFilter.init(ConexaoHibernateFilter.java:19)

at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)

at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)

at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)

at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:98)

at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4562)

at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5240)

at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5235)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: org.hibernate.AnnotationException: No identifier specified for entity: financeiro.usuario.Usuario

at org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:268)

at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:223)

at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:686)

at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3977)

at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3931)

at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1368)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1826)

at financeiro.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:14)

 14 more

19/03/2012 19:39:09 org.apache.catalina.core.StandardContext startInternal

GRAVE: Error filterStart

19/03/2012 19:39:09 org.apache.catalina.core.StandardContext startInternal

GRAVE: Context [/FinanceiroWeb] startup failed due to previous errors

19/03/2012 19:39:09 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc

GRAVE: The web application [/FinanceiroWeb] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

19/03/2012 19:39:09 org.apache.coyote.AbstractProtocolHandler start

INFO: Starting ProtocolHandler [“http-bio-8080”]

19/03/2012 19:39:09 org.apache.coyote.AbstractProtocolHandler start

INFO: Starting ProtocolHandler [“ajp-bio-8009”]

19/03/2012 19:39:09 org.apache.catalina.startup.Catalina start

INFO: Server startup in 3183 ms

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

classe HibernateUtil

package financeiro.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {

private static final SessionFactory	sessionFactory	= buildSessionFactory();

private static SessionFactory buildSessionFactory() {
	try {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.configure("hibernate.cfg.xml");
		return cfg.buildSessionFactory();
	} catch (Throwable e) {
		System.out.println("Criação inicial do objeto SessionFactory falhou. Erro: " + e);
		throw new ExceptionInInitializerError(e);
	}
} 

public static SessionFactory getSessionFactory() {
	return sessionFactory;
}

}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
classe ConexaoHibernateFilter

package financeiro.web.filter;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import org.hibernate.SessionFactory;

import financeiro.util.HibernateUtil;

public class ConexaoHibernateFilter implements Filter {

private SessionFactory	sf;

public void init(FilterConfig config) throws ServletException {
	this.sf = HibernateUtil.getSessionFactory();
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws ServletException {

	try {

		this.sf.getCurrentSession().beginTransaction();

		chain.doFilter(servletRequest, servletResponse);

		this.sf.getCurrentSession().getTransaction().commit();
		this.sf.getCurrentSession().close();

	} catch (Throwable ex) {
		try {
			if (this.sf.getCurrentSession().getTransaction().isActive()) {
				this.sf.getCurrentSession().getTransaction().rollback();
			}
		} catch (Throwable t) {
			t.printStackTrace();
		}
		throw new ServletException(ex);
	}
}
public void destroy() {}

}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1 Resposta

W

Olá, o seu erro aparece aqui
Caused by: org.hibernate.AnnotationException: No identifier specified for entity: financeiro.usuario.Usuario

Está faltando definir a chave primária da tabela mapeada nessa entidade. Para isso, use a anotação @Id acima do atributo que representa a PK.

Criado 19 de março de 2012
Ultima resposta 19 de mar. de 2012
Respostas 1
Participantes 2