Hibernate在EntityTuplizerFactory.constructTuplizer中失败并出现NullPointerException? 为什么?
当我尝试实例化Hibernate并连接MySQL数据库时,我遇到了问题(请参阅下面的错误消息)。
奇怪的是,在运行Junit测试时,使用完全相同的hibernate.cfg.xml文件可以很好地连接,但是当从Tomcat运行时它拒绝工作…
我开始没有想法了。
任何线索或提示在哪里看?
引起:org.hibernate.HibernateException:无法在org.hibernate.tuple的org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:110)中实例化默认tuplizer [org.hibernate.tuple.entity.DynamicMapEntityTuplizer]位于org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping。(EntityEntityModeToTuplizerMapping.java:69)的.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:135)位于org.hibernate.tuple.entity.EntityMetamodel。(EntityMetamodel.java:323)at at org.hibernate.persister.entity.AbstractEntityPersister。(AbstractEntityPersister.java:456)org.hibernate.persister.ntister.Teartister.Persister.PeristerFactory.javister(PersisterFactory.java)中的org.hibernate.persister.entity.SingleTableEntityPersister。(SingleTableEntityPersister.java:131) 84)atg.hibernate.impl.SessionFactoryImpl。(SessionFactoryImpl.java:267)atg.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)at se.fmt.atlantism.util.HibernateUt il.buildSessionFactory(HibernateUtil.java:16)… 38更多引起:org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:107)的java.lang.NullPointerException … 47更多
我正在为未来的Google员工撰写此文章并参考。
我做了一些更多的研究,问题的根源仍然未知。 然而,下面的文章让我走上正轨。
http://www.howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu/
似乎在Ubuntu(和Debian)中可用的Tomcat(至少版本6)包不能正常工作。 相反,我使用以下指南安装了Tomcat:
http://www.ctrip.ufl.edu/tomcat6-debian-lenny-howto
虽然这可能不是安装的最佳选择,但似乎有必要在Ubuntu和/或Debian Lenny上运行Tomcat版本6而不会出现问题。
就我而言,通过在我的pom.xml中切换
我猜你需要调整你的类路径,除了(假设你已经丢弃了WEB-INF / lib中的两个jar)它应该按照正确的顺序排序。 但也许这会让某人暗示如何前进。
在我的情况下,这是一个简单的错误 – 配置文件* .hbm.xml有一个映射对象没有的属性! 当你拼错一个get / set函数时,我也听说过这个错误的情况 – 非常类似于我的情况。
我遇到了同样的问题。 在我下载“javassist.jar”并将其放入类路径后,它就消失了: http : //www.java2s.com/Code/Jar/JKL/Downloadjavassistjar.htm
这是Tomcat守护程序进程的外观:
根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 /共享/ tomcat6中/认可 -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中/工作/ 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
这是使用Sysdeo Tomcat启动程序插件从Eclipse内部运行时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 =运输= dt_socket,暂停= Y,地址=本地主机:37377 -Dcatalina.home =的/ usr /共享/ tomcat6中 -Djava.endorsed.dirs =的/ usr /共享/ tomcat6中/认可 -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开始
工作的(Eclipse启动)使用java-6-sun-1.6.0.15运行,我是Windows用户所以我不知道如何判断哪个JRE用于/ usr / lib / jsvc(虽然看着它),但我的猜测是它是一些OpenJDK ……这可能是区别吗?
更新:jsvc可能使用相同的JRE Sysdeo Tomcat启动程序
- sqlite数据库连接:java.Lang.ClassNotFoundException:org.sqlite.JDBC
- 通过代理抛出使用mySql引起:java.sql.SQLException:不支持可调用语句。 重新连接后