Unable to get the default Bean Validation factory
前几天看了一下教程 ,自己试着配置了一下web下的hibernate,悲剧的时,出错了提示下面:
信息: Hibernate Validator bean-validator-3.0-JBoss-4.0.2Exception in thread "main" org.hibernate.HibernateException: Unable to get the default Bean Validation factoryat org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:127)at org.hibernate.cfg.Configuration.applyBeanValidationConstraintsOnDDL(Configuration.java:1704)at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1654)at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1445)at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1856)at hb.sh.model.mainClass.main(mainClass.java:9)Caused by: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:118)... 5 moreCaused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactoryat org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:383)at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:109)... 10 moreCaused by: javax.validation.ValidationException: Unable to instantiate Configuration.at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:272)at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:380)... 11 moreCaused by: java.lang.NullPointerExceptionat java.util.ResourceBundle.getBundle(ResourceBundle.java:960)at org.hibernate.validator.engine.ResourceBundleMessageInterpolator.loadBundle(ResourceBundleMessageInterpolator.java:202)at org.hibernate.validator.engine.ResourceBundleMessageInterpolator.getFileBasedResourceBundle(ResourceBundleMessageInterpolator.java:182)at org.hibernate.validator.engine.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:81)at org.hibernate.validator.engine.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:73)at org.hibernate.validator.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:57)at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:43)at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269)... 13 more
在网上奔波了几天,都没打找到解决的办法,无奈啊,自己硬着头皮,看hibernate的帮助文档,搜索validation,打开有道词典边翻译边看帮助文档,希望它能帮我,功夫不负有心人,终于让我找到了一段:
- 23.1.1. Adding Bean Validation
- To enable Hibernate's Bean Validation integration, simply add a Bean Validation provider (preferably Hibernate Validation 4) on your classpath.
- 23.1.2. Configuration
- By default, no configuration is necessary.
- The Default group is validated on entity insert and update and the database model is updated accordingly based on the Default group as well.
- You can customize the Bean Validation integration by setting the validation mode. Use the javax.persistence.validation.mode property and set it up for example in your persistence.xml file or your hibernate.cfg.xml file. Several options are possible:
- auto (default): enable integration between Bean Validation and Hibernate (callback and ddl generation) only if Bean Validation is present in the classpath.
- none: disable all integration between Bean Validation and Hibernate
- callback: only validate entities when they are either inserted, updated or deleted. An exception is raised if no Bean Validation provider is present in the classpath.
- ddl: only apply constraints to the database schema when generated by Hibernate. An exception is raised if no Bean Validation provider is present in the classpath. This value is not defined by the Java Persistence spec and is specific to Hibernate.
- 注意
- You can use both callback and ddl together by setting the property to callback, dll
- <persistence ...>
- <persistence-unit ...>
- ...
- <properties>
- <property name="javax.persistence.validation.mode"
- value="callback, ddl"/>
- </properties>
- </persistence-unit>
- </persistence>
- This is equivalent to auto except that if no Bean Validation provider is present, an exception is raised.
- If you want to validate different groups during insertion, update and deletion, use:
- javax.persistence.validation.group.pre-persist: groups validated when an entity is about to be persisted (default to Default)
- javax.persistence.validation.group.pre-update: groups validated when an entity is about to be updated (default to Default)
- javax.persistence.validation.group.pre-remove: groups validated when an entity is about to be deleted (default to no group)
- org.hibernate.validator.group.ddl: groups considered when applying constraints on the database schema (default to Default)
- Each property accepts the fully qualified class names of the groups validated separated by a comma (,)
这里大意就是在hibernate.cfg.xml或者是persistence.xml文件下面需要配置javax.persistence.validation.mode属性
我不知道是什么意思,我于是直接改我的hibernate.cfg.xml文件里添加属性:
<property name="javax.persistence.validation.mode">none</property>
可怜的我居然hibernate居然不报错了。兴奋啊,javax.persistence.validation.mode默认情况下是auto的,就是说如果不设置的话它是会自动去你的classpath下面找一个bean-validation**包,但是找不到,所以beanvalitionFactory错误。
Unable to get the default Bean Validation factory的更多相关文章
- 使用hibernate时出现 org.hibernate.HibernateException: Unable to get the default Bean Validation factory
hibernate 在使用junit测试报错: org.hibernate.HibernateException: Unable to get the default Bean Validation ...
- juit测试中报错:org.hibernate.HibernateException: Unable to get the default Bean Validation factory
org.hibernate.HibernateException: Unable to get the default Bean Validation factory 解决方法: 解决方案: 在hib ...
- Spring JUnit org.hibernate.HibernateException: Unable to get the default Bean Validation factory
org.hibernate.HibernateException: Unable to get the default Bean Validation factory <property nam ...
- org.hibernate.HibernateException: Unable to get the default Bean Validation factor
org.hibernate.HibernateException: Unable to get the default Bean Validation factor这个异常需要在hibernate.c ...
- spring和hibernate整合时报sessionFactory无法获取默认Bean Validation factory
Hibernate 3.6以上版本在用junit测试时会提示错误: Unable to get the default Bean Validation factory spring和hibernate ...
- Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testAction': ...
- javax.validation.ValidationException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.
项目依赖 <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifa ...
- Exception in thread "main" javax.validation.ValidationException: Unable to find a default provider
Exception in thread "main" javax.validation.ValidationException: Unable to find a default ...
- Java数据校验(Bean Validation / JSR303)
文档: http://beanvalidation.org/1.1/spec/ API : http://docs.jboss.org/hibernate/beanvalidation/spec/1. ...
随机推荐
- Linux常用命令收藏
常见操作: 快速清空文件内容的几种方法:#: > filename # > filename # echo "" > filename # echo > f ...
- Maven 配置tomcat插件
使用tomcat插件来访问maven 1 先下载tomcat插件(在pom中配置) <!-- 配置Tomcat插件 --> <plugin> <groupId>or ...
- jmeter建立JDBC连接池时遇到“A Test is currently running,stop or shutdown test to execute this command”
1.显示如下图,打开日志可以看到:Variable Name must not be empty for element:JDBC Connection Configuration,即JDBC Con ...
- pure框架
内容: 1.介绍与入门 2.基础使用 参考资料: pure中文文档:https://www.purecss.cn/ pure实例:https://www.purecss.cn/layouts.html ...
- vb 读取指定路径文件名
Private Sub ExportCostSheetData() InsertRow("") InsertRow("Run 2:Export CostingSheet= ...
- Python简单实现基于VSM的余弦相似度计算
在知识图谱构建阶段的实体对齐和属性值决策.判断一篇文章是否是你喜欢的文章.比较两篇文章的相似性等实例中,都涉及到了向量空间模型(Vector Space Model,简称VSM)和余弦相似度计算相关知 ...
- JS转义解码方法
之前只知道可以解决传值乱码问题,今天刚好看到,从新补充下: JavaScript中有三个可以对字符串编码的函数,分别是: 转义方法: escape();//函数可对字符串进行编码 encodeURI( ...
- 怎样把代码复制到word中并保持颜色
- CentOS 7 JDK安装
官网: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1.下载(下图有个错误 ...
- UI5-文档-2-开发环境
这一部分将指导您安装.配置和设置SAPUI5开发环境的最常见和推荐用例. 请注意:您可以在不同的平台上使用SAPUI5.各自平台的许可和维护条件也适用于SAPUI5.例如,如果在SAP云平台上使用SA ...