提问者:小点点

如何使Bean Validation 1.0与JBoss AS 5.1一起工作?


我在JBoss AS 5.1.0中使用Bean Validation 1.0有问题。

当我使用Hibernate Validator 4.3.0.Final时,当我尝试验证对象时会出现以下异常:

没有这样的方法错误...尝试调用 org.jboss.logging.Logger.getMessageLogger(类类型,字符串类别)时

问题是:

+- 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
+- org.jboss.jbossas:jboss-as-server:5.1.0.GA
|  +- org.jboss.logging:jboss-logging-spi:2.1.0.GA
|  +- etc...

并且jbos-loging-spi 2.1中的旧Logger类(位于JBOSS_HOME/lib中)不包含此方法。

如何强制我部署在JBoss中的应用程序使用更新的jboss-logging库?

目前,我发现的解决方法是使用hibernate-validator 4.1.0.Final,它不使用jboss-logging,而是使用slf4j-api。


共2个答案

匿名用户

您可以通过添加名为<code>JBoss classloading的文件来配置JBoss AS 5.x中的类加载细节。xml转换为WEB-INF(当部署WAR时)或META-INF

<classloading xmlns="urn:jboss:classloading:1.0"
    domain="YourAppNameDomain"
    parent-domain="Ignored"
    export-all="NON_EMPTY"
    import-all="true">
</classloading>

您可以在这里、这里和这里找到有关可用选项的更多信息。

匿名用户

在pom顺序中的< code>hibernate-core之后添加< code>hibernate-validator解决了我遇到的类似问题。