Сбой Hibernate с NullPointerException в EntityTuplizerFactory.constructTuplizer? Зачем? - PullRequest
0 голосов
/ 12 января 2010

У меня проблема при попытке создать экземпляр Hibernate и подключиться к базе данных MySQL (см. Сообщение об ошибке ниже).

Как ни странно, соединение работает нормально, используя тот же файл hibernate.cfg.xml при запуске тестов Junit, но отказывается работать при запуске из Tomcat ...

У меня заканчиваются идеи.

Любые подсказки или советы, где искать?

Причина: org.hibernate.HibernateException: Невозможно создать экземпляр tuplizer по умолчанию [org.hibernate.tuple.entity.DynamicMapEntityTuplizer] в org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer (EntityTuplizerFactory.java:110) в org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer (EntityTuplizerFactory.java:135) в org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping. (EntityEntityModeToTuplizerMapping.java:69) в org.hibernate.tuple.entity.EntityMetamodel. (EntityMetamodel.java:323) в org.hibernate.persister.entity.AbstractEntityPersister. (AbstractEntityPersister.java:456) в org.hibernate.persister.entity.SingleTableEntityPersister. (SingleTableEntityPersister.java:131) в org.hibernate.persister.PersisterFactory.createClassPersister (PersisterFactory.java:84) в org.hibernate.impl.SessionFactoryImpl. (SessionFactoryImpl.java:267) в org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1341) в se.fmt.atlantism.util.HibernateUtil.buildSessionFactory (HibernateUtil.java:16) ... еще 38 Вызывается: java.lang.NullPointerException atg.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer (EntityTuplizerFactory.java:107) ... еще 47

Ответы [ 5 ]

2 голосов
/ 28 января 2010

Я пишу это для будущих пользователей Google и справки.

Я провел еще несколько исследований, и основной источник проблемы до сих пор неизвестен. Однако следующая статья направляет меня на правильный путь.

http://www.howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu/

Похоже, пакеты Tomcat (по крайней мере версии 6), доступные в Ubuntu (и Debian), работают неправильно. Вместо этого я установил Tomcat, используя следующее руководство:

http://www.ctrip.ufl.edu/tomcat6-debian-lenny-howto

Хотя это может быть и не лучший выбор установки, кажется, что необходимо запустить Tomcat версии 6 без проблем в Ubuntu и / или Debian Lenny.

1 голос
/ 29 марта 2010

В моем случае это была простая ошибка - файл конфигурации * .hbm.xml имел свойство, которого у отображаемого объекта не было! Я также слышал о случаях появления этой ошибки, когда вы неправильно пишете функцию get / set - очень похоже на мой случай.

1 голос
/ 29 марта 2010

В моем случае эта ошибка была устранена путем переключения порядка в моем pom.xml. Когда hibernate (3.2.7.ga) предшествует hibernate-annotations (3.4.0.GA), возникает эта ошибка. С другой стороны, работает нормально. Это имеет место даже с областью действия = компиляция.

Я бы предположил, что вам нужно настроить ваш путь к классу, за исключением того, что (при условии, что вы опустили обе банки в WEB-INF / lib) он должен быть отсортирован по альфа-каналам в правильном порядке. Но, возможно, это даст кому-то подсказку, как двигаться вперед.

0 голосов
/ 19 апреля 2010

Я столкнулся с той же проблемой. Он ушел после того, как я скачал "javassist.jar" и поместил его в classpath: http://www.java2s.com/Code/Jar/JKL/Downloadjavassistjar.htm

0 голосов
/ 20 января 2010

Вот как выглядит процесс демона Tomcat:

root      2605  0.0  0.0  16584   376 ?        Ss   15:39   0:00
  /usr/bin/jsvc -user tomcat6
 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar
 -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid
 -Djava.awt.headless=true -Xmx128M
 -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed
 -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6
 -Djava.io.tmpdir=/tmp/tomcat6-temp -Djava.security.manager
 -Djava.security.policy=/var/lib/tomcat6/work/catalina.policy
 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
 -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties
 org.apache.catalina.startup.Bootstrap

Вот как выглядит процесс Tomcat при запуске из Eclipse с помощью плагина запуска Sysdeo Tomcat:
(этот на самом деле работает)

jzaruba   2655 19.7  4.5 358304 46152 ?        Sl   15:43   0:01
 /usr/lib/jvm/java-6-sun-1.6.0.15/bin/java
 -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:37377
 -Dcatalina.home=/usr/share/tomcat6
 -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed
 -Dcatalina.base=/var/lib/tomcat6 -Djava.io.tmpdir=/var/lib/tomcat6/temp
 -Dfile.encoding=UTF-8 -classpath
 /usr/share/tomcat6/bin/bootstrap.jar:/usr/lib/jvm/java-6-sun-1.6.0.15/lib/tools.jar 
 org.apache.catalina.startup.Bootstrap start

Рабочий (запущенный Eclipse) запускается с использованием java-6-sun-1.6.0.15, я пользователь Windows, поэтому не знаю, как определить, какой JRE используется для / usr / lib / jsvc (ищу хотя на это), но я думаю, что это какой-то OpenJDK ... Может ли это быть разница?

обновление: jsvc, вероятно, использует тот же лаунчер JRE Sysdeo Tomcat, что и

...