Appeler EJB3 asynchrone sous JBoss

Publié le par Nicolas

Voici une façon simple de faire un EJB3 asynchrone dans votre application.

 

Il faut utiliser la classe AsyncUtils disponible dans jboss-ejb3-common.jar qui doit être dans le répertoire common\lib\ de votre Jboss.

 

Si vous utulisez Maven, vous pourvez l'inclure dans le pom :

 

<dependency>
  <groupId>org.jboss.ejb3</groupId>
  <artifactId>jboss-ejb3-common</artifactId>
  <version>1.0.2</version>
  <scope>provided</scope>
</dependency>

 

 

Pour appeler une méthode en asynchrone, vous devez faire ça:

 

Injecter normalement votre EJB dans votre service

 

 
@EJB
private MonService monService;

 

 

Ensuite dans votre code, quand vous avez besoin d'appeler ce service en asynchrone, faites:

 

 

 
MonService monServiceAsynch = AsyncUtils.mixinAsync(monService);

 

 

Ceci permet de créer un EJB asynchrone à partir d'un EJB "normal".

 

Il ne reste plus qu'à appeller la méthode du service :

 

 

  
monServiceAsync.maMethode();

 

 

 

Si vous avez besoin de la réponse vous pouvez utiliser la méthode getFutureResult.

 

 

Publié dans Java

Commenter cet article