【问题标题】:Datanucleus enhancer not working with appengineDatanucleus 增强器不适用于 appengine
【发布时间】:2013-07-02 06:00:02
【问题描述】:

目前我正在使用 Spring、JPA、AppEngine 和 Datanucleus 编写一个用 Java 编写的 Web 应用程序。这一切都运行良好,直到上周突然没有任何东西可以编译了(即使是 SVN 上的旧版本)。

我目前使用的版本是:

  • 数据核:3.2.5
  • 应用引擎:1.8.1
  • datanucleus-appengine:2.1.2
  • datanucleus-jpa: 2.1.8
  • datanucleus-api-jpa: 3.3.0-m1
  • datanucleus-maven-plugin: 3.3.0-m1

连同其他一些依赖项,但我认为列表中的那些是最重要的。一切都是使用 Maven 编译的。当我运行 maven clean installmaven datanucleus:enhance 时,增强器崩溃:

[ERROR] --------------------
[ERROR]  Standard error from the DataNucleus tool + org.datanucleus.enhancer.DataNucleusEnhancer :
[ERROR] --------------------
[ERROR] Exception in thread "main" java.lang.NoSuchMethodError: org.datanucleus.metadata.MetaDataManager.getOMFContext()Lorg/datanucleus/OMFContext;
        at org.datanucleus.jpa.metadata.JPAAnnotationReader.processClassAnnotations(JPAAnnotationReader.java:199)
        at org.datanucleus.metadata.annotations.AbstractAnnotationReader.getMetaDataForClass(AbstractAnnotationReader.java:126)
        at org.datanucleus.metadata.annotations.AnnotationManagerImpl.getMetaDataForClass(AnnotationManagerImpl.java:171)
        at org.datanucleus.metadata.MetaDataManager.loadAnnotationsForClass(MetaDataManager.java:2757)
        at org.datanucleus.metadata.MetaDataManager.loadPersistenceUnit(MetaDataManager.java:1015)
        at org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:796)
        at org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:513)
        at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1281)

[ERROR] --------------------

它还给出了一些其他错误:

Extension Point "org.datanucleus.implementation_creator" not registered, but plugin "org.datanucleus.enhancer" defined in file:/D:/FBLAAUW/.m2/repository/org/datanucleus/datanucleus-enhancer/3.1.1/datanucleus-enhancer-3.1.1.jar refers to it.

以及以下几个错误(大约 100 个)

ERROR DataNucleus.Persistence  - User-defined type mapping class "org.datanucleus.store.types.sco.simple.Collection" was not found. Please check the mapping file class specifications and your CLASSPATH. The class must be in the CLASSPATH.

我正在使用 JRE 1.7,但我也尝试过使用 JRE 1.6(也没有工作)。我的猜测是使用的版本彼此不兼容,但我不确定。有人对此有想法吗?

【问题讨论】:

    标签: java google-app-engine maven jpa datanucleus


    【解决方案1】:

    建议你整理一下正在使用的jars的版本。 This page 声明 Google 的“datanucleus-appengine”与 DataNucleus 项目 jar 的兼容性

    【讨论】:

    • 谢谢DataNucleus,确实是datanucleus-appengine jar 干扰了其余部分。最新版本的 datanucleus-appengine 尚未在 maven 存储库中,因此应使用所有其他依赖项的旧版本。谢谢你的链接!为 datanucleus 使用 3.1.1 版解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2012-06-21
    • 2015-07-21
    相关资源
    最近更新 更多