在JBoss中使用BeanValidation1.0作为5.1.0有问题。
当我使用Hibernate Validator 4.3.0.Final时,当我试图验证一个对象时,会出现以下异常:
NoSuchMethodError...当尝试调用org.jboss.logging.Logger.getMessageLogger(Class类型时,字符串类别)
问题是:
hibernate的依赖树-验证器4.3包含:
+- org.hibernate:hibernate-validator:jar:4.3.0.Final:compile
| +- javax.validation:validation-api:jar:1.0.0.GA:compile
| \- org.jboss.logging:jboss-logging:jar:3.1.0.CR2:compile-jboss server 5.1的依赖树包含:
+- org.jboss.jbossas:jboss-as-server:5.1.0.GA
| +- org.jboss.logging:jboss-logging-spi:2.1.0.GA
| +- etc...JBoss-Logg-SPI2.1中的旧Logger类(位于JBOSS/lib中)不包含此方法。
我的问题是:
如何强制部署在JBoss中的应用程序使用更新的jboss库?
我目前的解决办法是:
目前,我发现的解决办法是使用hibernate-验证器4.1.0.Final,它不使用jboss,而是使用slf4j-api。
发布于 2013-06-26 06:24:51
您可以将JBoss中的类加载细节配置为5.x,方法是将名为jboss-classloading.xml的文件添加到WEB-INF (部署WAR时)或META-INF (部署EAR时)。在发生战争的情况下,以下几点应该起作用:
<classloading xmlns="urn:jboss:classloading:1.0"
domain="YourAppNameDomain"
parent-domain="Ignored"
export-all="NON_EMPTY"
import-all="true">
</classloading>您可以找到有关可用选项这里、这里和这里的更多信息。
发布于 2016-08-24 19:01:32
在pom顺序中在hibernate-core之后添加hibernate-core解决了一个类似的问题。
https://stackoverflow.com/questions/17308822
复制相似问题