Objectif :

Connecter une applications cliente console avec une application serveur EJB pour utiliser les différents services fournis par celle ci en utilisant la librairie JNDI.

On considère que nous avons déjà developper notre application EJB (tutoriel session bean)

Étape 1 :

On crée notre projet Java et on ajoute les librairies suivantes :

  • jbossall-client.jar
  • jboss-aspect-jdk50-client.jar
  • jboss-aop-jdk50-client.jar

Celles ci se trouve dans le répertoire Client de votre installation JBoss

Pour cela click droit sur notre projet =>Properties =>Java Build Path=>Libraries=>Add External Jar

Il faut aussi rajouter la référence à notre projet EJB

projet =>Properties =>Java Build Path=>Project=>Add

Si vous utilisez un autre serveur que Jboss  , il faut lire la documentation spécifique du serveur pour connaitre les jar à ajouter, elle peuvent aussi changer d’une version à l’autre.

Étape 2 :

Dans votre projet ,créer un fichier nommé jndi.properties qui contiendra les propriétés nécessaires à notre application cliente pour se connecter sur le serveur Jboss et utiliser une session bean.

les propriétés pour un serveur Jboss sont :

java.naming.factory.initial =org.jnp.interfaces.NamingContextFactory

java.naming.factory.url.pkgs =org.jboss.naming:org.jnp.interfaces

java.naming.provider.url = 127.0.0.1:1099

Étape 3 :

il ne reste plus qu’a utiliser ces propriétés et consommer notre service, dans ma classe main :

public static void main(String[] args) {
try {
// on précharge le fichier de jndi.properties dans un object context
InitialContext context = new InitialContext();

// grâce a un lookup du context on récupere la session qu'on veut consommer , l'appel se fait avec l'interface de la session
HelloSessionRemote hellosession = (HelloSessionRemote) context.lookup("HelloSession/remote");

// on affiche le résultat dans la console
System.out.println(hellosession.helloService());
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

Avant de compiler notre application cliente on vérifie bien que notre application EJB est déployée sur le serveur

Publicités