2012-11-21 20 views
1

我有一個EJB類,它使用TimerService創建一個計時器& EJB的TimerConfig。java.lang.ClassFormatError:在類文件javax/ejb/TimerConfig中不是本地或抽象的方法中缺少代碼屬性

當我運行了JUnit測試類,下面的錯誤被認爲是:

java.lang.ClassFormatError:在方法缺席代碼屬性,是不是在類文件的javax/EJB/TimerConfig

本地或抽象

我使用下面的Maven依賴於EJB:

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

任何建議如何解決這個問題?

回答

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> 
相關問題