java - Datanucleus 编程 API 类增强

标签 java api jdo datanucleus

我正在使用 Eclipse 3.7 (OSGI),我可以进行手动增强(使用 Datanucleus Eclipse 插件和 datanucleus-enhancer-2.1.0-release 作为插件依赖项导入)

我正在尝试使用 API 类增强:http://www.datanucleus.org/products/accessplatform/jpa/enhancer.html#api

类路径中的 ASM 3.1 和此代码:

DataNucleusEnhancer enhancer=new DataNucleusEnhancer("JDO","ASM");
enhancer.setVerbose(true);
enhancer.addClasses(...);
enhancer.enhance();

我得到:

You have selected to use ClassEnhancer "ASM" yet the JAR for that enhancer does not seem to be in the CLASSPATH!
org.datanucleus.enhancer.NucleusEnhanceException: You have selected to use ClassEnhancer "ASM" yet the JAR for that enhancer does not seem to be in the CLASSPATH!
    at org.datanucleus.enhancer.DataNucleusEnhancer.init(DataNucleusEnhancer.java:224)
    at org.datanucleus.enhancer.DataNucleusEnhancer.addClasses(DataNucleusEnhancer.java:406)

使用教程中建议的代码:

JDOEnhancer enhancer = JDOHelper.getEnhancer();
enhancer.setVerbose(true);
enhancer.addClasses(...);
enhancer.enhance();

我得到:

javax.jdo.JDOFatalUserException: There are 0 services entries for the JDOEnhancer; there were no valid JDOEnhancer implementations found in the CLASSPATH. The file META-INF/services/javax.jdo.JDOEnhancer should name the implementation class.

有没有办法实现API类增强?

最佳答案

请参阅此链接 http://www.datanucleus.org/products/accessplatform_3_0/enhancer.html#runtime

特别是一句:“Runtime Enhancement 需要以下运行时依赖项:ASM 和 DataNucleus Core 库。”

所以您可能缺少 ASM 依赖项。

尝试添加这个依赖:

    <dependency>
      <groupId>org.ow2.asm</groupId>
      <artifactId>asm</artifactId>
      <version>4.2</version>
    </dependency>

关于java - Datanucleus 编程 API 类增强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19793874/

相关文章:

java - datanucleus jdo 3.1.2 迁移到 4.x

rest - 如何使用 postman 的github api

java - 如何对 HashMap<String,List<Employee>> 中的员工列表进行排序?

java - ubuntu 找不到系统 Java 编译器。确保您已经安装了 JDK(不仅仅是 JRE)a

java - 将初始化参数添加到 init(ServletConfig) 中的列表

node.js - Loopback API 包括未按预期工作的过滤器

api - Instagram 禁止访问其 API

java - Apache Cassandra 的高级 Java 客户端选择

java - XSD 模式 - JAXB 编码(marshal)处理 - 数据存储(JPA/JDO)往返

java - 为我的 java 类做一个更改程序,不知道如何循环整个程序?