1

EJBのTimerServiceとTimerConfigを使用してタイマーを作成するEJBクラスがあります。

クラスをテストするためにjunitを実行していると、次のエラーが表示されます。

java.lang.ClassFormatError:クラスファイルjavax / ejb/TimerConfigでネイティブまたは抽象ではないメソッドにコード属性がありません

私は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>

問題を解決する方法について何か提案はありますか?

4

1 に答える 1

2

javax:javaee-api 依存関係に由来するクラスのメソッドは空のシェルです。実際の実装はありません。これらのクラスは、ランタイムではなく、コンパイルするためだけのものです。

実行には実際の実装が必要です。とにかく GlassFish が使用されるため、代わりに次の依存関係を使用することが適切な解決策です。

<dependency>
    <groupId>org.glassfish.extras</groupId>
    <artifactId>glassfish-embedded-all</artifactId>
    <version>3.1.1</version>
    <scope>test</scope>
</dependency>
于 2012-11-21T18:44:35.373 に答える