2010-01-12 1 views
0

У меня проблема при попытке создать Hibernate и подключиться к базе данных MySQL (см. Сообщение об ошибке ниже).Сбой Hibernate с NullPointerException в EntityTuplizerFactory.constructTuplizer? Зачем?

Довольно странно, что соединение работает нормально, используя один и тот же файл 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) at org.hibernate.persister.entity.AbstractEntityPersister. (AbstractEntityPersister.java:456) at org.hibernate.persister.entity.SingleTableEntityPersister. (SingleTableEntityPersister.java:131) at org.hibernate.persister.PersisterFactory.createClassPersister (PersisterFactory.java:84) at 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 в org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer (EntityTuplizerFactory.java:107) ... 47 более

ответ

2

Я пишу это для будущих Googlers и ссылки.

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

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.

+0

Оба руководства используют сценарии startup.sh и shutdown.sh Tomcat для управления экземпляром Tomcat. Это хорошо для разработки, но в производстве вы должны использовать jsvc для запуска Tomcat со специальной учетной записью с низким уровнем привилегий. Вам нужно построить jsvc - источник корабля с Tomcat в $ CATALINA_HOME/bin/jsvc-src.tar.gz Tomcat5.sh в этом архиве предоставляет подходящий скрипт установки - для его jvm/environment потребуется настройка. Подробнее об этом от Apache: http://tomcat.apache.org/tomcat-6.0-doc/setup.html Это относится только к установкам * nix - установщик Windows волшебным образом создает службу jsvc. –

0

Это как процесс демона 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 пусковой делает

+0

Я использую java-6-sun-1.6.0.15 jdk, поэтому я сомневаюсь, что версия Java виновата. –

1

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

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

+0

Звучит интересно. Я посмотрю на него, как только у меня будет время потратить на эту проблему еще раз. –

1

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

+0

Спасибо за ваш вклад. Я не думаю, что это проблема с файлами * .hbm.xml по нескольким причинам; но я думаю, эта проблема имеет много корней и причин. –

 Смежные вопросы

  • Нет связанных вопросов^_^