Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Ошибка при переходе на hibernate 3


Автор: greef 12.1.2008, 01:52
Доброго времени суток. 
Решил перейти на hibernate 3.
Раньше проект на hibernate 2 и spring 2.0
Щас перешел на spring 2.5 и  hibernate 3.1. В результате проект не могу запустить.
Лог:
Код

00:41:06,015: WARN - Configurator.configure(126) | No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/C:/tomcat/webapps/user/WEB-INF/lib/ehcache-1.1.jar!/ehcache-failsafe.xml
00:41:07,765: ERROR - c | CGLIB Enhancement failed: org.gritsik.model.User
java.lang.NoClassDefFoundError: org/objectweb/asm/Type
    at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:180)
    at net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66)
    at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
    at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)
...............
00:41:07,781: WARN - PojoEntityTuplizer.buildProxyFactory(173) | could not create proxy factory for:org.gritsik.model.User
org.hibernate.HibernateException: CGLIB Enhancement failed: org.gritsik.model.User
...............
Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/Type
    at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:180)
    at net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66)
    at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
    at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)
    ... 52 more


В чем может быть проблема?

lib:
c3p0-0.9.0.jar
cglib-2.1.3.jar
commons-collections-2.1.1.jar
commons-lang.jar
commons-logging-1.0.4.jar
dom4j-1.6.1.jar
ehcache-1.1.jar
hibernate3.jar
hsqldb.jar
jta.jar
log4j-1.2.11.jar
spring.jar
spring-orm.jar
spring-web.jar
spring-webmvc.jar
standard.jar

и Java 1.5



Автор: intr 12.1.2008, 06:44
У тебя нет библиотеки asm:)

можно попробовать ее найти в каком нибудь hinernate проекте, например у меня в архиве hinernate лежит файл asm.jar.

p/s
Если мне не изменяет память это библиотека позволять расширить стандартные фишки reflection

Автор: greef 12.1.2008, 13:15
Спасибо, asm добавил, от этой ошибки избавился.
Но теперь:
Код

12:08:54,250: ERROR - ContextLoader.initWebApplicationContext(215) | Context initialization failed
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.gritsik.dao.hibernate.UserDAOHibernate] for bean with name 'userDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/orm/hibernate/support/HibernateDaoSupport
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1176)
.......
12:08:54,265: ERROR - StandardContext.listenerStart(3767) | Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.gritsik.dao.hibernate.UserDAOHibernate] for bean with name 'userDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/orm/hibernate/support/HibernateDaoSupport



Кстати такой вопрос. Такие библиотеки как asm, cglib, c3p0 и тд имеется и в lib spring. Откуда лучше брать эти библиотеки из spring или hibernate?

Автор: greef 12.1.2008, 13:38
Поспешил с вопросом, ошибку сам нашел в DAO классе:

Код


import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
//import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import org.gritsik.dao.UserDAO;
import org.gritsik.model.User;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.List;

public class UserDAOHibernate extends HibernateDaoSupport implements UserDAO {
    private static Log log = LogFactory.getLog(UserDAOHibernate.class);
...................


Вопрос в силе
Цитата

Кстати такой вопрос. Такие библиотеки как asm, cglib, c3p0 и тд имеется и в lib spring. Откуда лучше брать эти библиотеки из spring или hibernate?

Автор: intr 15.1.2008, 04:18
Цитата(greef @ 12.1.2008,  18:15)
Кстати такой вопрос. Такие библиотеки как asm, cglib, c3p0 и тд имеется и в lib spring. Откуда лучше брать эти библиотеки из spring или hibernate?

Лучше всего их брать из spring, причина в том что spring связывает все уровни приложения в единое целое и лучше чтобы все версии библиотек были согласованы с ним.

p/s
кстати рекомендую для сборки проектов maven, там будет намного меньше проблем с нехваткой библиотекsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)