1. ホーム
  2. java

[解決済み] hibernate のプロパティが見つかりません。

2022-01-22 20:50:31

質問

java blazeds hibernateをflexプロジェクトに統合しています。まず、eclipseで純粋なjava hibernateをテストしましたが、うまく実行されました。しかし、同じものをフレックスとblazedsの統合のためにtomcatに入れたところ、次のエラーが表示されました。

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;
    }
}

フレックス側からコントロールが来て、Javaメソッドの開始点を実行するのですが、ハイバーネートのものを実行すると、tomcatでこのエラーが表示されます...。

しかし、純粋なJavaアプリケーションとしてjava+hibernateを実行すると、正常に実行されています。

どなたか教えてください。

ありがとうございます

EDIT 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 ). また、Tomcatの実行の詳細をデバッグ出力で表示するためにlog4jarを使用し、Tomcatの出力に実行の流れを全て表示するようにします。