如何将hibernate-validator 4.3.0.Final升级到Glassfish 3.1.2?

时间:2012-05-11 09:37:46

标签: glassfish-3 hibernate-validator

目前,Hibernate Validator已将最新版本发布为4.3.0.Final here。我尝试将其升级到我的Glassfish 3.1.2,如下所示: -

1. Remove the GLASSFISH/glassfish/modules/bean-validator.jar
2. Copying the hibernate-validator-4.3.0.Final.jar to GLASSFISH/glassfish/modules
3. Restart the Glassfish
4. The Glassfish cannot start. It seems hang.

通过Google搜索后,我发现名为“bean-validator.jar”的文件是由Glassfish团队创建的OSGi版本。可悲的是,我找不到如何创建它。你能帮忙进一步提出建议吗?非常感谢您的帮助。我很期待很快收到你的来信。

2 个答案:

答案 0 :(得分:8)

可以找到有关如何构建Glassfish的bean-validator.jar的(略微过时的)描述here

一般需要的是OSGi包,其中包括Hibernate Validator本身和Bean Validation API。使用此捆绑包,您应该能够替换原始的bean-validator.jar。此外,您还需要JBoss Logging软件包,该软件包自Hibernate Validator自4.3版开始用作日志记录API,并且已经以OSGi软件包的形式提供。

如果您正在构建Web应用程序,您还可以通过向文件WEB-INF/glassfish-web.xml提供以下内容,在WAR和turn off类加载器委派中打包HV 4.3:

<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
    <class-loader delegate="false" />
</glassfish-web-app>

这样,HV类将从您的应用程序而不是Glassfish提供的模块加载。

您可能也对GLASSFISH-15648问题感兴趣,该问题旨在为HV提供专用的Glassfish更新包。

答案 1 :(得分:3)

由于我的案例是ear,而不是war,根据Gunnar的建议,我做了一个补丁版本的模块,可以部署到Glassfish(我的版本是{ {1}})。

有人可能会发现它仍然有用,请参阅我的博客了解我的解决方案(包括分步方法):http://peter-butkovic.blogspot.de/2012/11/glassfish-311-oss-with-hibernate.html