【问题标题】:Using classes from org.hibernate in WildFly在 WildFly 中使用 org.hibernate 中的类
【发布时间】:2014-10-17 04:34:47
【问题描述】:

我正在将一个 Java EE 应用程序从 GlassFish (4.0) 迁移到 Wildfly (8.1.0 final)。需要使用来自hibernate-core(4.3.6 最终版)的本机 Hibernate 包,即org.hibernate.annotations.Type。例如,

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime discountStartDate; //Getter and setter.

使用 Joda-Time。

但是,此类型尚未解决。出现编译时错误,指示此包不存在。

我尝试在 ejb 模块中向 MANIFEST.MF 添加显式依赖项,如 here 所述,但包仍然无法解析。

我是否需要打包自己的副本并将其作为外部库添加到 ejb 模块?应该使用服务器中包含的 Hibernate jar,而不是将它们添加为外部 jar。

【问题讨论】:

    标签: hibernate wildfly wildfly-8


    【解决方案1】:

    如果您收到 编译时 错误,则必须将 Hibernate 添加到您的编译时类路径中 - 对于 Maven,您将使用范围 provided

    将 Hibernate 依赖项添加到 MANIFEST.MF(或 jboss-deployment-structure.xml)仅有助于在运行时解析 Hibernate 类。

    【讨论】:

    • 我不使用 Maven。是蚂蚁。
    • 没关系。如果您只有 Java EE 或 JPA JAR 或您的编译时类路径,那么 org.hibernate.* 包将不可见,因此您必须添加 Hibernate 库。
    • 谢谢。您认为哪个位置是在 ejb 模块 中存储外部库的好地方。在war模块的情况下,它们通常放在WEB-INF/lib文件夹中,但在ejb模块中,肯定没有WEB-INF文件夹。目前,我将它们存储在我在 ejb 模块的根目录上创建的 lib 文件夹中。我读了很多关于这个的问题/答案。不同的答案提到不同的事情。在大多数 Eclipse 项目中,他们建议将库存储在 EarContents 文件夹中。我在不存在这样的默认文件夹的情况下使用 NetBeans - 事情非常混乱:)
    猜你喜欢
    • 2018-02-23
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多