【问题标题】:NetBeans 8.2 - Weblogic - Ant buildNetBeans 8.2 - Weblogic - Ant 构建
【发布时间】:2017-12-28 12:40:52
【问题描述】:

当我尝试使用 ant 在 Netbeans 中构建我的企业项目时,我遇到了这个异常:

警告:注释中支持的源版本“RELEASE_6” 处理器 'org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor' 小于 -source '1.8' 注意:创建静态元数据工厂 ...

注释处理器引发了未捕获的异常。 有关详细信息,请参阅以下堆栈跟踪。 java.lang.ClassFormatError:类文件中非本机或抽象方法中的缺失代码属性 javax/persistence/PersistenceException

我的 ejb 模块中只有一些 entityclasses。

【问题讨论】:

    标签: java jakarta-ee netbeans ant


    【解决方案1】:

    当您使用插入代码和自动创建 bean 时,它会添加 Java EE 6 API 库。我删除了该库并添加了 Java EE 7 API。

    【讨论】:

      【解决方案2】:

      此错误报告为bug in NetBeans(状态为已解决,因为它被认为是“用户错误”)。以下是解释问题并给出解决方案的主要评论:

      “ClassFormatError: Absent Code attribute in method...”始终表明 javaee-api-6.0.jar 用于运行时执行。 jar 只包含方法签名(方法体被剥离)并且只适合编译。在 javac 的未来版本中可能会有更好的错误消息。

      这里的问题是 javaee-api-6.0.jar 在 EclipseLink jar 之前的类路径上,并且当 EclipseLink 注释处理器启动时,使用 javaee-api-6.0.jar 中的类而不是 EclipseLink 中的类。 首先应该从 EJB 项目的类路径中删除 javaee-api-6.0.jar - 因为 EJB 项目选择了应用程序服务器并且项目从该服务器获取 EE 6 API,所以不需要它。

      据我了解,您应该尝试从项目的类路径中删除对 j​​avaee-api-6.0.jar(仅包含“虚拟”类)的任何引用,因为 EclipseLink 库应该提供正确的类注释处理器。

      另外,this question 似乎也解决了同样的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-18
        • 2019-06-15
        • 1970-01-01
        • 1970-01-01
        • 2020-12-22
        • 1970-01-01
        • 2020-01-22
        • 1970-01-01
        相关资源
        最近更新 更多