2012-01-23 110 views
2

我在這裏有一個奇怪的問題,基本上,即時通訊與gwt,maven和gwt maven插件一起使用hibernate。gwt-maven插件和休眠

然而,休眠以下消息初始化過程中失敗:

[ERROR] Initial SessionFactory creation failed.org.hibernate.HibernateException: could not instantiate QueryTranslatorFactory: org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory 

周圍的Googling讓我發現,這顯然是與hibernate.jar是在classpath的兩倍。

我不完全理解GWT插件如何配置其類路徑。我嘗試將hibernate-core設置爲scope-> provided,這使得它不會將其包含在軟件包的/ lib目錄中,但是,在運行jetty時它仍然將其放入類路徑中?

這是輸出MVN GWT:運行,如果有人設法讓GWT,Maven和休眠發揮好在一起-X

C:\Program Files\Java\jdk1.6.0_27\jre\bin\java -Xmx512m -classpath C:\Develop\Git-repositories\PromoCMS\promocms\src\man\java; 
C:\Develop\Git-repositories\PromoCMS\promocms\src\main\resources; 
C:\Develop\Git-repositories\PromoCMS\promocms\target\promocms-1.0-SNAPSHOT\WEB-INF\classes; 
C:\Users\secretusershyy\.m2\repository\com\google\gwt\gwt-servlet\2.4.0\gwt-servet-2.4.0.jar; 
C:\Users\secretusershyy\.m2\repository\com\google\gwt\gwt-user\2.4.0\gwt-user-2.4.0.jar; 
C:\Users\secretusershyy\.m\repository\org\hsqldb\hsqldb\2.2.6\hsqldb-2.2.6.jar; 
C:\Users\secretusershyy\.m2\repository\org\hibernate\hibernate-core\4..1.Final\hibernate-core-4.0.1.Final.jar; 
C:\Users\secretusershyy\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar; 
C:\Users\secretusershyy\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar; 
C:\Users\secretusershyy.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.1_spec\1.0.0.Final\jboss-transaction-api_1.1_spc-1.0.0.Final.jar; 
C:\Users\secretusershyy\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar; 
C:\Users\secretusershyy\.m2\repositoy\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar; 
C:\Users\secretusershyy\.m2\repository\org\hibernate\javax\persistence\hiberate-jpa-2.0-api\1.0.1.Final\hibernate-jpa-2.0-api-1.0.1.Final.jar; 
C:\Users\secretusershyy\.m2\repository\org\jboss\logging\boss-logging\3.1.0.CR2\jboss-logging-3.1.0.CR2.jar; 
C:\Users\secretusershyy\.m2\repository\org\javassist\javassist\3.15.0-GAjavassist-3.15.0-GA.jar; 
C:\Users\secretusershyy\.m2\repository\org\hibernate\common\hibernate-commons-annotations\4.0.1.Finl\hibernate-commons-annotations-4.0.1.Final.jar; 
C:\Users\secretusershyy\.m2\repository\org\slf4j\slf4j-api\1.6.4\slf4j-api-.6.4.jar; 
C:\Users\secretusershyy\.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;C:\Users\secretusershyy\.m2\repository\com\google\gwt\gwt-user\2.4.0\gwt-user-2.4.0.jar; 
C:\Users\secretusershyy\.m2\repository\javax\validation\validation-api\1.0.0.GAvalidation-api-1.0.0.GA.jar; 
C:\Users\secretusershyy\.m2\repository\javax\validation\validation-api\1.0.0.GA\validation-api-1.0.0.GA-sources.jar; 

C:\Users\secretusershyy\.m2\repository\com\google\gwt\gwt-dev\2.4.0\gwt-dev-2.4.0.jar com.google.gwt.de.DevMode -war C:\Develop\Git-repositories\PromoCMS\promocms\target\promocms-1.0-SNAPSHOT -gen C:\Develop\Git-repositoris\PromoCMS\promocms\target\.generated -logLevel INFO -port 8888 -startupUrl PromoCMS.html mrkt.promocms.gwt.PromoCMS 

在這一個任何幫助,將不勝感激。

UPDATE 我想我會對此錯誤的方式,這意味着,我不認爲這是由於重複的類路徑上的jar文件反正。

基本上,我添加了hibernate-core 4.0.1作爲依賴項,如果我降級到3.6.0,它工作正常。

+0

你可以提供你的應用程序的附件源代碼? – BraginiNI

+0

創建SessionFactory時,它在初始化階段失敗。我可以生成hibernate.cnf.xml,但我懷疑這會有多大的幫助。我會更新這個問題來解釋爲什麼(基本上,它似乎是一個休眠v.4.0.1問題,如果我在POM中更改爲版本3.6.0,問題就消失了)。 – JustDanyul

回答

3

取決於您選擇的HQL解析器實現。更改屬性名稱如下:

<property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property> 

<property name="hibernate.query.factory_class">org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory</property> 

見請告訴我新的第六點?部分休眠4.0 link