5

目前,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.

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

4

2 回答 2

8

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

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

如果您正在构建一个 Web 应用程序,您还可以将 HV 4.3 打包到您的 WAR 中,并通过提供具有以下内容的文件来关闭类加载器委托:WEB-INF/glassfish-web.xml

<!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 更新包。

于 2012-05-12T16:42:08.573 回答
3

由于我的情况是ear,而不是war,基于 Gunnar 的建议,我做了一个模块的补丁版本,可以部署到Glassfish(我的版本是3.1.1 OSE)。

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

于 2012-11-16T11:57:59.977 回答