【问题标题】:DataNucleus Enhancer doesn't workDataNucleus 增强器不起作用
【发布时间】:2012-08-02 19:55:54
【问题描述】:

我正在使用 Google AppEngine 和 Spring MVC 编写一个网络应用程序。我按照以下步骤仔细升级到 DataNucleus 插件的 v2:http://code.google.com/p/datanucleus-appengine/wiki/UpgradingToVersionTwo(我使用 Eclipse)。

当我尝试运行 Enhancer Tool 时,出现以下错误:

Exception in thread "main" Plugin (Bundle) "org.datanucleus" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL 
"file:/.../eclipse/plugins/com.google.appengine.eclipse.sdkbundle_1.6.4.v201203300216r37/appengine-java-sdk-1.6.4/lib/opt/user/datanucleus/v2/datanucleus-core-3.0.6.jar" is already registered, and you are trying to register an identical plugin located at URL 
"file:/.../eclipse/plugins/com.google.appengine.eclipse.sdkbundle_1.6.4.v201203300216r37/appengine-java-sdk-1.6.4/lib/opt/tools/datanucleus/v2/datanucleus-core-3.0.6.jar."

我对消息进行了格式化,以便您可以看到微小的差异,一个 jar 是从“user”目录加载的,另一个是从“tools”目录加载的。我不明白为什么。在项目构建路径中,只有一个来自“用户”和 DataNucleus 配置,我从“工具”添加了一个,就像上面建议的方法一样。

在我看到的其他情况下,这条消息主要是由 datanucleus 插件的版本冲突引起的,但它不适用于我。我想这对我来说只是一些愚蠢的事情......那我做错了什么?

【问题讨论】:

  • 如果您对自己的构建路径如此确定,您是否尝试过清理项目并重新构建?

标签: google-app-engine datanucleus


【解决方案1】:

毕竟,我并没有像我想象的那样仔细阅读说明。问题实际上是 jar 存在两次,一次在项目构建路径中,一次在 datanucleus 配置中。它不应该在项目构建路径中(或者实际上,它不应该在其中之一中,无论哪个都无所谓)。当我将库复制到 war 目录时,我自动将它添加到那里,并且我认为它必须完成。但说明清楚地表明只有 jdo-api 需要在项目构建路径中。

但有一点我不明白。在说明的一个步骤中,我必须在 DataNuclues 配置中取消选中 “运行工具时使用项目类路径”。那么插件怎么可能还在使用项目构建路径中配置的库呢?

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2012-06-21
    • 2015-07-21
    相关资源
    最近更新 更多