Не удается инициализировать SessionFactory. Спящий режим 3 весной

#java #hibernate #spring #maven

#java #спящий режим #весна #maven

Вопрос:

это мой ApplicationContext.xml . Я не могу запустить свою программу из-за этой ошибки:

Исключение в потоке «main» org.springframework.beans.factory.Исключение BeanCreationException: ошибка при создании компонента с именем ‘SessionFactory’, определенным в ресурсе пути к классу [ApplicationContext.xml ]: Не удалось создать экземпляр компонента; вложенным исключением является org.springframework.beans.Исключение BeanInstantiationException: не удалось создать экземпляр класса bean [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Конструктор вызвал исключение; вложенным исключением является java.lang.Ошибка NoClassDefFoundError

Я должен сказать, что HibernateVoc расширяет поддержку HibernateDaoSupport. Я просмотрел несколько веб-страниц в поисках того, как использовать HibernateDaoSupport, являются ли эти свойства правильными для инициализации SessionFactory… Мне не удалось решить проблему.

Спасибо вам всем!

 <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.gjt.mm.mysql.Driver" />
<property name="url" value="jdbc:mysql://localhost/voc" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="datasource" />
<property name="mappingResources">
    <list>
        <value>com/ju/voc/domain/words/Word.hbm.xml</value>
        <value>com/ju/voc/domain/categroies/Category.hbm.xml</value>
    </list>
</property>
<property name="hibernateProperties">
    <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    </props>
</property>
</bean>
<bean id="hibernateVoc" class="com.ju.voc.data.HibernateVoc">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
 

PS Я использую Maven, поэтому я загружаю библиотеки оттуда.

Комментарии:

1. В вашем пути к классу должен отсутствовать какой-то класс. Строка «вызвано» в трассировке стека должна рассказать вам больше о том, где это происходит и, следовательно, какой класс может отсутствовать.

Ответ №1:

Вам не хватает зависимости для перехода в спящий режим.

Поскольку spring-orm артефакт обрабатывает ORM с использованием обычных Hibernate, JPA, JDO и iBatis (и вряд ли когда-либо имеет смысл использовать их все), все эти зависимости помечены как необязательные, что означает, что вы должны ссылаться на зависимости в вашем pom.xml . Вот как ссылаться на последнюю стабильную версию ядра гибернации:

 <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.7.Final</version>
</dependency>
 

Комментарии:

1. Это было все, так просто, несмотря на то, что Spring в действии и другое о Java 6 EE, я не читал, что я, должно быть, включил зависимости для Hibernate… Я впервые попробовал iBatis, и сейчас я пытаюсь перейти в режим гибернации, и я не могу выдержать столько путаницы, так много версий и XML-файлов и разных способов настройки одного и того же… Я знаю, что это очень мощно, но вначале это беспорядок. Я имею в виду, я не знаю, правильно ли я делаю, чтобы изучить Java framework… Что вы сделали?

Ответ №2:

Полученное вами исключение (java.lang.NoClassDefFoundError) означает, что вы забыли включить библиотеку jar в свое приложение. Попробуйте глубоко проанализировать трассировку журнала и найти недостающий класс, чтобы включить соответствующий jar. Вероятно, вы пропустили зависимость от режима гибернации.

Комментарии:

1. Я установил как зависимости в pom.xml : junit, mysql и org.springframweork. что осталось?

2. Режим гибернации отсутствует. Чтобы использовать Hibernate, вам нужен Hibernate.