当前位置: 首页 > 面试题库 >

Weblogic 12休眠验证异常

狄信然
2023-03-14
问题内容

从Weblogic 11c切换到Weblogic 12c后,出现此异常:

javax.persistence.PersistenceException: [PersistenceUnit: JpaPersistenceUnit] Unable to build EntityManagerFactory
...
Caused By: java.lang.NoSuchMethodError: javax.validation.spi.ConfigurationState.getParameterNameProvider()Ljavax/validation/ParameterNameProvider;
at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.<init>(ValidatorFactoryImpl.java:113)
at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:45)

我发现了有关该主题的其他问题,但是所有解决方案都是关于错误的库的(Vaadin 7-Bean
Validation
)。我认为我的hibernate-validator与bean验证器库匹配。这是我在WEB-INF / lib中拥有的:

hibernate-c3p0-4.2.4.Final.jar
hibernate-commons-annotations-4.0.2.Final.jar
hibernate-core-4.2.4.Final.jar
hibernate-entitymanager-4.2.4.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-validator-5.0.1.Final.jar
validation-api-1.1.0.Final.jar

可能是由其他依赖性引起的吗?

编辑 我目前在我的weblogic-application.xml中,一切正常。

<weblogic-application>

    <prefer-application-packages>
      <package-name>javax.wsdl.*</package-name>
      <package-name>javax.faces.*</package-name>
      <package-name>org.apache.taglibs.*</package-name>
      <package-name>org.springframework.*</package-name>
      <package-name>javax.persistence.*</package-name>
      <package-name>org.hibernate.*</package-name>
      <package-name>javax.validation.*</package-name>
      <package-name>javax.validation.bootstrap.*</package-name>
      <package-name>javax.validation.constraints.*</package-name>
      <package-name>javax.validation.groups.*</package-name>
      <package-name>javax.validation.metadata.*</package-name>
      <package-name>javax.validation.spi.*</package-name>
      <package-name>org.slf4j.*</package-name>
    </prefer-application-packages>

    <prefer-application-resources>
      <resource-name>javax.faces.*</resource-name>
      <resource-name>org.apache.taglibs.*</resource-name>
      <resource-name>org.springframework.*</resource-name>
      <resource-name>javax.persistence.*</resource-name>
      <resource-name>javax.validation.*</resource-name>
      <resource-name>org.hibernate.*</resource-name>
    </prefer-application-resources>

</weblogic-application>

问题答案:

java.lang.NoSuchMethodError主要是由于在类路径无效库版本。似乎WebLogic
12c使用的验证API与您的应用程序期望的版本不同。为了强制它使用您WEB-INF/lib文件夹中的那个,您必须使用中的prefer-web-inf- classeselement 指定它weblogic.xml

这里是有关的更多文档prefer- web-inf-classes



 类似资料:
  • 问题内容: 我对hibernate.hbm2ddl.auto = validate的实际工作方式很感兴趣,并且正在努力寻找全面的文档。 我们最近发现生产系统受到http://opensource.atlassian.com/projects/hibernate/browse/HHH-3532的影响(hibernate匹配名称上的外键,而不是签名,因此将为您重新创建外键)并hibernate.hbm

  • 问题内容: 我有一个字段,例如,在表中应该是唯一的。 使用Spring / Hibernate验证进行验证的最佳方法是什么? 问题答案: 一种可能的解决方案是创建自定义约束(和相应的验证器)。并在数据库中查找现有记录,请提供(或Hibernate )to 的实例。 EntityManagerAwareValidator ConstraintValidatorFactoryImpl 唯一键 Uniq

  • 问题内容: 我有一个“复杂”的问题。 我正在使用Hibernate / JPA与数据库进行事务。 我不是DBA,客户端使用了我的应用程序,即RESTful Web服务。我的问题是数据库已更改(不是很频繁,但仍在更改)。另外,客户端并不总是尊重我的应用程序的输入(长度,类型等)。发生这种情况时,Hibernate会引发异常。异常很难翻译和从日志中读取,因为它具有嵌套的异常并且由很多文本组成:就像我说

  • 问题内容: 我在注释和上遇到了问题。在Hibernate中运行代码时,我得到: 引起原因:org.hibernate.PropertyAccessException:无法通过com.test.entities.EmployeeId.serverId的反射设置器设置字段值 但是,让我们从头开始…我有一个实体的复合主键,它由指向其他两个实体(和)的外键组成。为了设计简洁,我在Employee实体中使用

  • 问题内容: 我在使用Spring进行休眠验证时遇到一些问题。我已经按照在线教程中的说明进行了所有操作,但是它不起作用,我只是转到下一页而没有验证错误。 控制器: 客户form.jsp 因此,当我的lastName为空字段时,BindingResult中没有错误。我究竟做错了什么? 问题答案: 如果您的类路径尚不存在,请添加它。如果您正在使用任何构建工具,例如或仅添加到依赖项。 例如: 摇篮: Ma

  • 问题内容: 我们遇到了遗留代码问题。有一个用于“用户名”字段的验证集,用于验证其长度并确保其至少包含一个字母: 我们面临的问题是,一些现有的旧数据不适合这些验证,我正在尝试找到一种方法,使旧数据(旧用户)可以忽略这些验证,同时仍将这些验证应用于新创建的用户。 我正在考虑将验证移至方法(因此将仅在实际更改时验证值),但这导致了异常: 我还确保将实体设置为,但这无济于事,因为hibernate会验证所