2013-04-02 67 views
3

我想使用GWT valiation 模块(jsr303)使用新验证的API(1.1)和Hibernate验证器(5.0),但是,明显得到了麻烦与GWT验证

ERROR: Errors in 'file:/C:/projects/qiwi-digest/webui/trunk/src/main/java/ru/befree/qiwi/client/gin/SampleValidatorFactory.java' 
    ERROR: Line 27: No source code is available for type javax.validation.ParameterNameProvider; did you forget to inherit a required module? 
    ERROR: Line 27: The method getParameterNameProvider() of type SampleValidatorFactory must override or implement a supertype method 
    ERROR: Line 28: No source code is available for type org.hibernate.validator.internal.engine.DefaultParameterNameProvider; did you forget to inherit a required module? 
    ERROR: Line 32: The method close() of type SampleValidatorFactory must override or implement a supertype method 

即GWT目前没有验证API 1.1支持。

解决方法的任何想法?

+1

查询+1。欢迎来到stackoverflow。你是对的GWT模拟客户端的hibernate验证器,目前正在使用4.1,因此validation-api版本是1.0而不是1.1。 – SSR

回答

1

您是否在路径中添加了javax.validation-api源代码?如果您使用的Maven你的依赖应该是这样的:

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.0.0.GA</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.0.0.GA</version> 
    <classifier>sources</classifier> 
    <scope>test</scope> 
</dependency> 
3

你也许是领先的曲线在使用Hibernate 5 !!!!

GWT只支持休眠4.1.0.Final。这里是从GWT样本中剪下的maven pom.xml文件,内容为Validation

<!-- Hibernate bean validation binary for the server --> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.1.0.Final</version> 
     <exclusions> 
     <exclusion> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>com.sun.xml.bind</groupId> 
      <artifactId>jaxb-impl</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 

    <!-- Hibernate bean validation source for the GWT client --> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.1.0.Final</version> 
     <classifier>sources</classifier> 
     <exclusions> 
     <exclusion> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
     </exclusion> 
     <exclusion> 
      <groupId>com.sun.xml.bind</groupId> 
      <artifactId>jaxb-impl</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 

GWT已经移植了hibernate验证器代码来与客户端一起工作。你可以在这里找到它 - https://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/org/hibernate/validator

你可以尝试黑客周围支持hibernate 5和validation-api 1.1!