Problema hibernate

3 respostas
W

Boa tarde
Estou desenvolvendo uma aplicação de teste com o hibernate e me deparei com alguns erros, na verdade sou um iniciante em java, e muitos dos erros que aparecem tenho que procurar e tentar resolver com o google, neste caso quando executo ele apresenta o seguinte erro.

42 [main] INFO org.jboss.weld.Version - WELD-000900 1.1.0 (Final)
153 [main] INFO org.jboss.weld.Bootstrap - WELD-000101 Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.VersionLoggerUtil logVersionInformation
INFO: Seam Solder 3.0.0.Final (build id: 3.0.0.Final)
Mar 11, 2013 1:05:11 PM org.jboss.seam.config.xml.bootstrap.XmlConfigExtension beforeBeanDiscovery
INFO: Seam Config XML provider starting...
Mar 11, 2013 1:05:11 PM org.jboss.seam.config.xml.bootstrap.XmlConfigExtension getDocumentProviders
INFO: Loading XmlDocumentProvider: org.jboss.seam.config.xml.bootstrap.ResourceLoaderXmlDocumentProvider
Mar 11, 2013 1:05:11 PM org.jboss.seam.config.xml.bootstrap.XmlConfigExtension beforeBeanDiscovery
INFO: Reading XML file: jar:file:/C:/Users/William%20N/Dropbox/Projetos/JavaHibernateJPA/lib/seam-persistence/seam-solder.jar!/META-INF/beans.xml
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.persistence.hibernate.HibernateManagedSessionExtensionImpl from being installed as bean due to @Veto annotation
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.persistence.HibernatePersistenceProvider from being installed as bean due to @Veto annotation
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.transaction.UTTransaction from being installed as bean due to @Veto annotation
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.transaction.SeSynchronizations from being installed as bean due to @Veto annotation
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.transaction.NoTransaction from being installed as bean due to @Veto annotation
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.transaction.EntityTransaction from being installed as bean due to @Veto annotation
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.transaction.HibernateTransaction from being installed as bean due to @Veto annotation
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.solder.resourceLoader.ResourceProvider from being installed as bean due to @Veto annotation
Mar 11, 2013 1:05:11 PM org.jboss.seam.solder.core.CoreExtension processAnnotatedType
INFO: Preventing class org.jboss.seam.solder.core.VersionLoggerUtil from being installed as bean due to @Veto annotation
1394 [main] WARN org.jboss.interceptor.util.InterceptionTypeRegistry - Class 'javax.ejb.PostActivate' not found, interception based on it is not enabled
1394 [main] WARN org.jboss.interceptor.util.InterceptionTypeRegistry - Class 'javax.ejb.PrePassivate' not found, interception based on it is not enabled
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: org.jboss.weld.exceptions.UnsatisfiedResolutionException: WELD-001308 Unable to resolve any beans for Types: [class br.teste.negocio.service.AlunoService]; Bindings: [@javax.enterprise.inject.Default()]
at org.jboss.weld.manager.BeanManagerImpl.getBean(BeanManagerImpl.java:809)
at org.jboss.weld.bean.builtin.InstanceImpl.get(InstanceImpl.java:108)
at br.teste.aplicacao.ApplicationContainer.get(ApplicationContainer.java:21)
at teste.apresentacao.Gravar.(Gravar.java:8)

a classe a qual ele indica o erro esta assim

AplicationContainer
package br.teste.aplicacao;

import org.jboss.weld.environment.se.Weld;
import org.jboss.weld.environment.se.WeldContainer;

public class ApplicationContainer {
	private static ApplicationContainer instance = new ApplicationContainer();
	
	private WeldContainer container;
	
	private ApplicationContainer() {
		Weld weld = new Weld();
		this.container = weld.initialize();
	}
	
	public static ApplicationContainer getIntance() {
		return instance;
	}
	
	public <T> T get(Class<T> type){
		return container.instance().select(type).get();
	}
}

Gravar

package teste.apresentacao;

import br.teste.negocio.entidades.Aluno;
import br.teste.negocio.service.AlunoService;
import br.teste.aplicacao.*;

public class Gravar {
private static AlunoService alunoService = ApplicationContainer.getIntance().get(AlunoService.class);
	
	public static void main(String[] args) {
		Grava();
	

		}
	//@Override
	private static void Grava() {
		Aluno aluno = new Aluno();
		aluno.setAlu_codigo(1);
		aluno.setAlu_nome("William");
		aluno.setAlu_cidade("Assis");
		aluno.setAlu_telefone("5555-5555");
		System.out.print(aluno.toString());

		try {
			alunoService.gravar(aluno);
		} catch (br.teste.negocio.exeption.NegocioException e) {
			e.printStackTrace();
		}
		
	}


}

O @Override está comentado porque quando coloco da erro, o problema é que não deveria dar erro
o projeto está bem grande então vou postar também o link no mega para poderem baixar e dar uma olhada se for necessário
JavaHibernateJPA.rar (8.9 MB)
https://mega.co.nz/#!xwY3kDLB!JjHdywmy0KNjtKBLlSP8AVphzh06qPO2WFvWq_Mlm8Q

3 Respostas

Big_E

WOrlando, você está usando algum framework para Injeção de Depêndencias? Tipo Spring Framework?

Yago_Ernandes

Nesta parte:

public class Gravar {

Você deveria implementar ou estender alguma classe, por exemplo:

public class Gravar implements GravacaoDeAlunos { // um exemplo, inventei essa GravacaoDeAlunos

Entendeu? A classe que vc ta criando tem que depender de uma outra classe que tenha esse método Gravar, pra que o @Override funcione, porque ele sobrescreve um método que ja tenha na classe que ele depende.

É por isso que o @Override ta dando erro, esta classe não ta dependendo de nenhuma outra que tenha o método Gravar para ela sobrescrever.

W

Sim, injeção de dependência, pelo menos era a ideia

Criado 11 de março de 2013
Ultima resposta 11 de mar. de 2013
Respostas 3
Participantes 3