Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Hibernate的Grails2.4.4找不到ValidatorFactory类_Grails - Fatal编程技术网

带有Hibernate的Grails2.4.4找不到ValidatorFactory类

带有Hibernate的Grails2.4.4找不到ValidatorFactory类,grails,Grails,在ClassNotFoundException:javax.validation.ValidatorFactory exception中,我创建了一个新的2.4.4应用程序,功能非常简单。是的,我已经阅读了验证api:1.1.0和hibernate validator:5.0.3的相关内容,并按照建议将它们添加到BuildConfig.groovy中,因此最后看起来如下所示: grails.servlet.version = "3.0" grails.project.class.dir = "

在ClassNotFoundException:javax.validation.ValidatorFactory exception中,我创建了一个新的2.4.4应用程序,功能非常简单。是的,我已经阅读了验证api:1.1.0和hibernate validator:5.0.3的相关内容,并按照建议将它们添加到BuildConfig.groovy中,因此最后看起来如下所示:

grails.servlet.version = "3.0" 
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.work.dir = "target/work"
grails.project.target.level = 1.6
grails.project.source.level = 1.6

grails.project.fork = [
test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]
grails.project.dependency.resolver = "maven" // or ivy
grails.project.dependency.resolution = {
inherits("global") {
}
log "error" 
checksums true 
legacyResolve false 

repositories {
    inherits true 
    grailsPlugins()
    grailsHome()
    mavenLocal()
    grailsCentral()
    mavenCentral()
}

dependencies {
    test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4"
    compile 'javax.validation:validation-api:1.1.0.Final'
    runtime 'org.hibernate:hibernate-validator:5.0.3.Final'
}

plugins {
    build ":tomcat:7.0.55"
    compile ":scaffolding:2.1.2"
    compile ':cache:1.1.8'
    compile ":asset-pipeline:1.9.9"
    runtime ":hibernate4:4.3.6.1" 
    runtime ":database-migration:1.4.0"
    runtime ":jquery:1.11.1"
 }
}
之后,我为brewity添加了非常简单的基于hibernate的域类代码,将其映射到hibernate.cfg.xml,并创建了控制器和运行应用程序。瞧,ClassNotFoundException:javax.validation.ValidatorFactory。 我尝试将hibernate validator升级到5.1.3,并将其降级到4.3.1,同时将验证api降级到1.0.0,并将hibernate降级到4.3.5.5,但仍然没有成功。还可以做些什么? 完整错误转储如下:

 Error 2015-03-17 11:31:47,191 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener  - Error initializing the application: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory
Message: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory
    Line | Method
->>  262 | run       in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    744 | run       in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory
->>  262 | run       in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    744 | run       in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory
->>  262 | run       in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    744 | run       in java.lang.Thread
Caused by NoClassDefFoundError: javax/validation/ValidatorFactory
->> 2531 | privateGetDeclaredMethods in java.lang.Class
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   2774 | getMethod0 in     ''
|   1663 | getMethod in     ''
|    262 | run       in java.util.concurrent.FutureTask
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    744 | run . . . in java.lang.Thread
Caused by ClassNotFoundException: javax.validation.ValidatorFactory
->>  366 | run       in java.net.URLClassLoader$1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    355 | run       in     ''
|    354 | findClass in java.net.URLClassLoader
|    425 | loadClass in java.lang.ClassLoader
|    358 | loadClass in     ''
|   2531 | privateGetDeclaredMethods in java.lang.Class
|   2774 | getMethod0 in     ''
|   1663 | getMethod in     ''
|    262 | run . . . in java.util.concurrent.FutureTask
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    744 | run       in java.lang.Thread
| Error Forked Grails VM exited with error

更新:很奇怪,但是“run war”确实可以正常工作,“run app”则不能。由于您也在使用hibernate插件,如果您不关心版本,我怀疑您是否需要显式引用验证器。但这可能不是问题所在。是的,你是对的,这不是原因。我试图对hibernate验证程序的依赖性进行注释,但没有任何帮助