2011-12-01 50 views
3

我想通過下面的鏈接提供以下說明設置客戶端驗證我的GWT應用程序:GWT錯誤:沒有源代碼可用的類型org.hibernate.validator.constraints.impl.SizeValidatorForString

http://code.google.com/p/google-web-toolkit/wiki/BeanValidation

...並通過查看提供的抽查驗證:

http://code.google.com/p/google-web-toolkit/source/browse/trunk/samples/validation

我已經建立了完全相同的項目爲驗證樣本中,但作爲常規GWT項目 - 不使用Maven。我的客戶端和服務器類路徑上都有hibernate-validator-4.2.0.Final.jar和slf4j-api-1.6.1.jar。然而;我仍然在運行時出現以下錯誤:

No source code is available for type org.hibernate.validator.constraints.impl.SizeValidatorForString; did you forget to inherit a required module? 
No source code is available for type org.hibernate.validator.constraints.impl.SizeValidatorForCollection; did you forget to inherit a required module? 
No source code is available for type org.hibernate.validator.constraints.impl.SizeValidatorForMap; did you forget to inherit a required module? 

提到的類位於hibernate-validator-4.2.0.Final.jar中。所以,我有點困惑。難道是Validation.gwt.xml的超級聲明語句隱藏了jar中定義的類嗎?

回答

3

請注意錯誤:這不是類,而是源缺失。確保你的客戶端類路徑上也有類的jar。

超級源語句用於定義包含應該用於爲某些非客戶端軟件包提供客戶端等效功能的源的軟件包。

+1

你說得對科林。消息來源不見了。我最終使用了與使用的樣本相同的hibernate版本(不知道爲什麼我從一開始就沒有這樣做)。版本4.0.2.GA有一個hibernate-validator-4.0.2.GA.jar和一個來源:hibernate-validator-4.0.2.GA-sources.jar,這正是我所缺少的。 – Pete

+0

此外,超級來源是不需要的; HibernateValidator.gwt.xml執行所有必要的超級採購。 – Pete

+0

是的 - 我只是想解釋什麼是超級源,因爲它似乎並不清楚如何/爲什麼使用它。 –

0

你需要在你的classpath有兩種:冬眠 - 驗證 - 4.2.0.Final-sources.jar和休眠 - 驗證 - 4.2.0.Final.jar

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-validator</artifactId> 
    <version>4.2.0.Final</version> 
    <classifier>sources</classifier> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-validator</artifactId> 
    <version>4.2.0.Final</version> 
</dependency> 
+0

你可以編輯這個答案,使其更好,這將是非常有益的。 –

相關問題