找不到hibernate属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找不到hibernate属性相关的知识,希望对你有一定的参考价值。
我们正在将java blazeds hibernate与flex项目集成。首先我们在eclipse中测试了纯java hibernate并且它正在执行。但是当我们在tomcat中将它放在与blazeds进行flex集成时,它会显示以下错误。这是唯一的错误。
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.6
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Configuration getConfigurationInputSt
ream
INFO: Configuration resource: /hibernate.cfg.xml
这是hibernate.cfg.xml(要确定是否找不到hibernate.cfg.xml并通过删除.cfg.xml的DOCTYPE进行测试,然后显示tomcat输出显示未找到根元素...这意味着它能够找到hibernate.cfg.xml(我认为)
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://localhost/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<property name="current_session_context_class">thread</property>
<mapping class="com.model.User" />
<mapping class="com.model.UserDetails" />
<mapping class="com.model.LoanDetails" />
<mapping class="com.model.BorrowerDetails" />
</session-factory>
</hibernate-configuration>
这是hiberutil.java
public class HibernateUtil
{
private static SessionFactory sessionFactory=configureSessionFactory();
private static ServiceRegistry serviceRegistry;
private static SessionFactory configureSessionFactory() throws HibernateException {
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
}
为什么错误显示?控件来自flex方面并执行java方法的起点...但是当涉及到hibernate的东西执行时,它在tomcat中显示这个错误...
但是,当我执行java + hibernate作为纯Java应用程序时,它执行正常..
有谁能够帮我?
谢谢
编辑1 @Andremoniy建议修改并将.cfg.xml放在src文件夹中,这里也是在eclipse中它正在工作但不是在tomcat中使用flex
以下错误来了
org.hibernate.MappingException: An AnnotationConfiguration instance is required
to use <mapping class="com.model.User"/>
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.jav
a:1606)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.jav
a:1561)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1540)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1514)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1434)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)
at com.sample.HibernateUtil.configureSessionFactory(HibernateUtil
.java:26)
at com.sample.HibernateUtil.<clinit>(HibernateUtil.java:20)
at com.sample.App.checkUser(App.java:34)
我想问题是你为.hbm.xml
提到的配置代码可能无法在Tomcat中运行。
我认为它需要AnnotationConfiguration
对象。我想你使用这个代码是因为Annotationconfiguration
对象创建不起作用。
最好用pom创建一个maven hibernate项目,然后将war
文件导出到Tomcat(使用Annotationconfiguration
的更改)。还可以使用log4j jar来显示使用调试输出执行Tomcat的详细信息,以便Tomcat输出将打印所有执行流。
在我看来,你可以通过将hibernate.cfg.xml
直接传递到Configuration
来解决这个问题。
try (InputStream in = HibernateUtil.class.getResourceAsStream("/hibernate.cfg.xml")) {
Configuration configuration = new Configuration().addInputStream(in).configure();
...
} ...
唯一的,你必须正确指出路径或类,为getResourceAsStream
。或者你可能想要使用一些相对路径创建InputStream
。
我遇到了同样的问题,但我在这里找到了解决方案..
即。换行:
new Configuration().configure().buildSessionFactory();
至:
new AnnotationConfiguration().configure().buildSessionFactory();
如果看起来你使用Intellij Idea,你需要将hibernate.cfg.xml文件放入资源文件夹
如果你有下一个错误后:org.hibernate.service.jndi.JndiException:解析JNDI名称[]时出错
在hibernate.cfg.xml中删除标签的文件名见图:
以上是关于找不到hibernate属性的主要内容,如果未能解决你的问题,请参考以下文章