Boa tarde galera. Estou testando uma aplicação onde quero mapear um banco que roda no SQL Server 2005;
Uso Eclipse WTP e começando a usar o Hibernate. Conferi alguns tutoriais e artigos e montei o projeto.
Estou com um problema, quando executo a classe de testes, o log gerado mostra que o mapeamento (aparentemente) dos docs .xml e .java estão ok, mas parece que o hibernate nao consegue acessar meu BD…
Segue o Log, se alguem puder ajudar, FICAREI IMENSAMENTE GRATO!
Abraços.
2008-07-30 17:20:35,309 INFO hibernate.cfg.SettingsFactory -> cache provider: net.sf.ehcache.hibernate.Provider
net.sf.hibernate.HibernateException: could not instantiate CacheProvider: net.sf.ehcache.hibernate.Provider
at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:133)
at net.sf.hibernate.cfg.Configuration.buildSettings(Configuration.java:1132)
at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:766)
at br.com.human.hbm.service.SessionFactoryLocator.<init>(SessionFactoryLocator.java:16)
at br.com.human.hbm.service.SessionFactoryLocator.getInstance(SessionFactoryLocator.java:21)
at br.com.human.hbm.modeo.dao.CrudDAO.recuperarProduto(CrudDAO.java:31)
at teste.Teste.recuperaProduto(Teste.java:39)
at teste.Teste.main(Teste.java:17)
Caused by: java.lang.ClassNotFoundException: net.sf.ehcache.hibernate.Provider
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at net.sf.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:102)
at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:130)
... 7 more
O erro já diz tudo
Está faltando o arquivo ehcache-1.2.3.jar no classpath do seu projeto.
Olá,
Este já está em minha pasta LIB e adicionei nas ‘libraries’, junto, por exemplo, com a hibernate2.jar, log4j-1.2.11.jar etc…
Seria isso?
Inclusive, no meu hibernate.cfg.xml, existe esta linha:
<!-- HABILITANDO CACHE EM SEGUNDO NIVEL -->
<property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.Provider</property>
Se você está começando com o Hibernate, aconselho a começar do básico. Nada de usar cache de segundo level ou outras configurações de otimizações.
Olha na documentação do hibernate que tem exemplos e ensina como começar a utilizá-lo.
Agora sobre o seu erro, mesmo vc dizendo que está no lib, ele está reclamando que não encontrou o arquivo .jar do ehcache
Conferi as configuraçoes e as libs…
o ehcache que estava na minha classpath era do hibernate 3, aí eu troquei para o do 2 e passou desta parte.
ALGUMA AJUDA :::
o erro agora é este:
Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:63)
at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:215)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at net.sf.hibernate.impl.SessionFactoryImpl.<clinit>(SessionFactoryImpl.java:235)
at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:768)
at br.com.human.hbm.service.SessionFactoryLocator.<init>(SessionFactoryLocator.java:16)
at br.com.human.hbm.service.SessionFactoryLocator.getInstance(SessionFactoryLocator.java:21)
at br.com.human.hbm.modeo.dao.CrudDAO.recuperarProduto(CrudDAO.java:31)
at teste.Teste.recuperaProduto(Teste.java:39)
at teste.Teste.main(Teste.java:17)
versões erradas do cglib e asm…
tudo corrigido!
thank’s