Hibernate-eigenschappen niet gevonden

We integreren de Java-gebakken overwinteren met FLEX-project..Eerst hebben we de zuivere Java-overwinning in Eclipse getest en het uitvoert prima. Maar toen we hetzelfde in Tomcat voor Flex-integratie met Blaaseds plaatsen, toont het de volgende fout. Dit is de enige fout.

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

Dit is de hibernate.cfg.xml (om te identificeren of hibernate.cfg.xml niet wordt gevonden en ik getest door het verwijderen van doctype van .cfg.xml en tomcat-uitgang die wordt weergegeven en het root-element niet wordt gevonden, wat betekent dat het root-element niet wordt gevonden het is in staat om de hibernate.cfg.xml (ik denk) te vinden

<?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>

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

waarom wordt de fout weergegeven? de besturing komt van de flex-kant en voert het startpunt van de java-methode uit … maar als het gaat om de uitvoering van de slaapstand, wordt deze fout weergegeven in tomcat …

Maar als ik java+hibernate uitvoer als een pure java-toepassing, wordt het goed uitgevoerd..

kan iemand me helpen?

Bedankt

EDIT 1 Na de wijziging voorgesteld door @Andremoniy en het plaatsen van de .cfg.xml in de src map en hier ook in eclipse werkt het maar niet in tomcat met flex

volgende fout komt

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)

Antwoord 1, autoriteit 100%

Ik denk dat het probleem zit in de code voor configuratie die u noemde voor .hbm.xmlwerkt mogelijk niet in Tomcat.

Ik denk dat het een Annotationconfiguration-object nodig heeft. Ik vermoed dat je deze code hebt gebruikt omdat het maken van het object Annotationconfigurationniet werkt.

Beter een maven hibernate-project maken met pom en het bestand warexporteren naar Tomcat (met de wijzigingen van Annotationconfiguration). Gebruik ook log4j jar om de details van de Tomcat-uitvoering weer te geven met de debug-outputs, zodat de Tomcat-output de volledige uitvoeringsstroom zal afdrukken.


Antwoord 2, autoriteit 100%

Het lijkt mij dat je dit probleem kunt oplossen door hibernate.cfg.xmlrechtstreeks door te geven aan Configuration.

try (InputStream in = HibernateUtil.class.getResourceAsStream("/hibernate.cfg.xml")) {
     Configuration configuration = new Configuration().addInputStream(in).configure();
...
} ... 

Het enige dat u moet doen, is het pad of de klasse correct aanwijzen voor getResourceAsStream. Of misschien wilt u InputStreammaken met een relatief pad.


Antwoord 3, autoriteit 100%

Ik heb hetzelfde probleem gehad, maar ik heb hier de oplossing gevonden..

http://www .mkyong.com/hibernate/hibernate-error-an-annotationconfiguration-instance-is-required-to-use/

dwz. Verander de regel:

new Configuration().configure().buildSessionFactory();

naar:

new AnnotationConfiguration().configure().buildSessionFactory();

Antwoord 4, autoriteit 100%

als blijkt dat u Intellij Ideagebruikt, moet u het bestand hibernate.cfg.xmlin de map resources

plaatsen

en als je na de volgende fout het volgende krijgt:
org.hibernate.service.jndi.JndiException: fout bij het parseren van JNDI-naam []

verwijder in hibernate.cfg.xml bestandsnaam van tag zie afbeelding:

Other episodes