2013-01-24 185 views
8

我們正在將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; 
    } 
} 

爲什麼錯誤顯示?控制從柔性到來並執行Java方法的起點...但是當涉及到休眠的東西執行,它顯示這個錯誤在tomcat ...

但是,當我執行java + hibernate作爲純java應用程序它執行得很好。 。

有人可以幫我嗎?

感謝

EDIT 1通過@Andremoniy建議修改後,並把在src文件夾的.cfg.xml這裏也是日食它是工作,但沒有與彎曲的tomcat

以下錯誤來

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) 
+1

嗨,你原來的問題是什麼錯誤?在你粘貼的堆棧中,我只能看到'hibernate.properties not found',這不是錯誤。 –

+0

在我的原始問題,執行停止通過打印我粘貼堆棧,然後沒有執行查詢和沒有output..it結束像這樣...我把show_sql是真實的,但是不打印。 –

+0

你檢查連接到你的數據庫? –

回答

1

我想問題是你所提到的.hbm.xml的配置代碼可能不適用於Tomcat。

我覺得它需要AnnotationConfiguration對象。我想你使用這個代碼是由於Annotationconfiguration對象創建不起作用。

更好用pom創建一個maven hibernate項目,並將war文件導出到Tomcat(更改爲Annotationconfiguration)。還可以使用log4j jar來顯示Tomcat執行的細節,並使用調試輸出,以便Tomcat輸出將打印所有執行流。

1

在我看來,就可以解決這個問題,通過直接傳遞到hibernate.cfg.xmlConfiguration

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

唯一的是,您必須正確指定路徑或類,爲getResourceAsStream。或者您可能想要使用一些相對路徑創建InputStream

+0

謝謝。我是新來的hibernate。但是getClass()指向錯誤 –

+0

其實是的,這是很常見的例子,我已經將它改爲'HibernateUtil.class',但是這取決於**你的'hibernate.cfg.xml'放入放置'HibernateUtil.java'的包 – Andremoniy

+0

@SamprityKashyap你在哪裏放置了'hibernate.cfg.xml'文件? – Andremoniy

0

如果出現您使用IntelliJ IDEA的你需要把的hibernate.cfg.xml文件到資源文件夾

ads

an d,如果你將有一個錯誤後: org.hibernate.service.jndi.JndiException:錯誤解析JNDI名稱[]

在標籤的hibernate.cfg.xml文件名刪除見圖片

enter image description here