2014-03-31 78 views
0

我正在嘗試使用@Asynchronous註釋,但是當我嘗試使用maven編譯錯誤的項目時:出現「找不到符號:類Asynchronous」。Maven找不到符號:class Asynchronous

由於依賴我說:

<dependency> 
    <groupId>org.jboss.ejb3.async</groupId> 
    <artifactId>jboss-ejb3-async-spi</artifactId> 
    <version>1.0.0-alpha-3</version> 
</dependency> 
<dependency> 
    <groupId>javax.ejb</groupId> 
    <artifactId>ejb-api</artifactId> 
    <version>3.0</version> 
    <scope>provided</scope> 
</dependency> 

你有一個想法,爲什麼行家沒有找到異步類?

回答

2

只需刪除<scope>provided</scope>並再次嘗試mvn clean install即可。

provided範圍表示您期望JDK或容器在運行時提供依賴關係,並且它僅在編譯和測試類路徑中可用。

此外,根據@Asynchronous javadoc,註釋是在版本3.1中引入的,而您正在設置對EJB 3.0的依賴關係。 EJB 3.1是JavaEE 6的一部分,所以一個完整的和適當的依賴的定義是:

<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-api</artifactId> 
    <version>6.0</version> 
</dependency> 

更多信息:

+0

我試過了,但它不工作。 – user3480264

+0

@ user3480264,看我更新的答案。問題與版本 –

+0

你應該保留「提供」範圍,我想。否則,依賴關係可能會在EAR/WAR文件中結束。 – Puce