找不到hibernate属性

Sam*_*yap 9 java apache-flex tomcat hibernate blazeds

我们正在将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
Run Code Online (Sandbox Code Playgroud)

这是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>
Run Code Online (Sandbox Code Playgroud)

这是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;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么错误显示?控件来自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)
Run Code Online (Sandbox Code Playgroud)

小智 1

我猜问题在于您提到的配置代码.hbm.xml可能无法在 Tomcat 中工作。

我认为它需要AnnotationConfiguration对象。我猜您使用此代码是因为Annotationconfiguration对象创建不起作用。

最好用pom创建一个maven hibernate项目,并将war文件导出到Tomcat(带有 的更改Annotationconfiguration)。还可以使用 log4j jar 通过调试输出显示 Tomcat 执行的详细信息,以便 Tomcat 输出将打印所有执行流程。