NetBeans 8.2 - Weblogic - Ant构建

时间:2017-07-22 13:15:19

标签: java java-ee netbeans ant

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

  

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

     

注释处理器抛出了未捕获的异常。       有关详细信息,请参阅以下堆栈跟踪       java.lang.ClassFormatError:在类文件中不是本机或抽象的方法中的Absent Code属性   的javax /持久/的PersistenceException

我的ejb模块中只有一些entity个类。

2 个答案:

答案 0 :(得分:4)

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

  

" ClassFormatError:方法中缺少代码属性..."始终表明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。

根据我对该注释的理解,您应该尝试从项目的类路径中删除对javaee-api-6.0.jar(仅包含" dummy"类)的任何引用,因为EclipseLink库应该提供注释处理器使用的正确类。

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

答案 1 :(得分:0)

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