2012-11-10 52 views
0

在EJB中調用@Asynchronous方法時,雖然方法執行正常,但看到記錄中出現錯誤。任何有關錯誤的建議? EJB 3.1在WebSphere V8在EJB中使用異步註釋時出錯

的接口是:

@Local 
public interface MyService { 
    @Asynchronous 
    public void doJob(MyObj o); 
} 

實現類:

@Stateless 
@Local(MyService.class) 
public class MyBean implements MyService { 
    @Asynchronous 
    public void doJob(MyObj o) { 

     // insert to DB 

    } 
} 

錯誤消息

CWWAM1101E:在類{0}的方法{1}用@Asynchronous註釋,但必須應用於bean c的業務方法或者本地/遠程業務接口的業務方法。

回答

1

這是在WebSphere缺陷直到V8.0.0.5和修復在V8.0.0.6預期

1

當你正在實現一個接口(MyService)時,你的bean不會公開一個無接口視圖。這意味着EJB容器必須「做某些事情」的所有方法都必須在該接口中定義。

很可能void doJob(...)未定義MyService。如有疑問,請顯示doJobMyService的完整定義。

+0

增補附加代碼片段 –

+0

我想誤差約爲具有註釋的接口方法聲明。你可以嘗試從'MyService'中刪除'@ Asynchronous'嗎?那麼你應該只在'MyBean'上有'@ Asynchronous'註釋。 –

+0

p.s. '@ Local'註解是雙倍的。你只需要一次。在這種情況下,刪除'MyBean'上的一個。 –