java.lang.ClassFormatError:在类文件javax / ejb / TimerConfig中不是本机或抽象的方法中的Absent Code属性

时间:2012-11-21 12:43:20

标签: maven junit4 ejb-3.1

我有一个EJB类,它使用TimerService和amp;来创建一个计时器。 EJB的TimerConfig。

当我运行junit来测试类时,会看到以下错误:

java.lang.ClassFormatError:在类文件javax / ejb / TimerConfig中不是本机或抽象的方法中的Absent Code属性

我正在使用ejb以下的maven依赖:

<dependency>
   <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
   <groupId>org.glassfish</groupId>
   <artifactId>javax.ejb</artifactId>
   <version>3.1.1</version>
   <scope>test</scope>
</dependency>

有任何建议如何解决问题??

1 个答案:

答案 0 :(得分:2)

来自javax的类中的方法:javaee-api依赖是空shell - 它们没有真正的实现。这些类只是针对运行时进行编译。

为了执行,需要真正的实施。因为无论如何都使用了GlassFish,所以使用以下依赖项是合适的解决方案:

<dependency>
    <groupId>org.glassfish.extras</groupId>
    <artifactId>glassfish-embedded-all</artifactId>
    <version>3.1.1</version>
    <scope>test</scope>
</dependency>