atg.service.servicelocator
Class ATGServiceLocator

Package class diagram package ATGServiceLocator
java.lang.Object
  extended by atg.util.service.ATGBasicClass
      extended by atg.service.servicelocator.ATGServiceLocator
All Implemented Interfaces:
ATGILogable

public class ATGServiceLocator
extends ATGBasicClass

Titre : Classe de service de localisation de composant du framework

Description : Cette classe est à disposition sous forme d'un service du framework pour localiser les composants de l'application.

Pré-requis pour utiliser le service locator :

Le framework doit être initialisé (cf démarrer le service de log et initialiser le fichier constantes.properties).
Le fichier constantes.properties doit contenir le chemin d’accès du fichier JNDI.

Exemple
#PATH_JNDI_FILE = D:\\bea\\user_projects\\domains\\
#PATH_JNDI_FILE = /home/weblogic/bea/user_projects/domains/domainso/
PATH_JNDI_FILE = C:\\temp\\

De plus, il doit référencer les informations permettant de trouver l’ejb à savoir :

Exemple
defaut.contexts = c1
mon_ejb.name = EJBSofRef
mon_ejb.contexts = c2,c3,c1

le contexte par défaut : x correspond à un nom de fichier c1_JNDI.properties qui nous le verrons ci dessous permet de donner le contexte par défaut du serveur (note : il fournit la factory et l’url du serveur).
Le nom de l’ejb : il s’agit du nom réel de l’ejb qui figure dans l’annuaire (=JNDI).
Le contexte de l’ejb : ici, on peut mentionner l’ensemble des serveurs sur lesquels peuvent être déployé notre ejb (note : le contexte par défaut sera ajouté automatiquement à cette liste).

Le fichier c1_JNDI.properties renseigne sur :

Le nom de la factory qui permet de trouver le JNDI (note : sans elle, on ne peut accéder au JNDI).
L’url du serveur fournit la localisation du serveur

Exemple - webLogic serveur 8.1
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://127.0.0.1:7501
#java.naming.security.principa=nom d'utilsateur
#java.naming.security.credentials=mot de passe

Obtention de la Home de l’Ejb :

Pour cela votre classe doit utiliser la méthode « ATGServiceLocator.getInstance().getHome ».
Celle-ci prend en paramètre le nom de votre ejb (note : le nom que vous avez inscrit dans le fichier constantes.properties) et la classe Home de l’ejb concerné. Cette méthode renvoie une Home.

Ainsi, vous disposez à présent d’une Home sur laquelle il vous est possible de faire un create() ou un destroy()...

Exemple
bean2Home = (Bean2Home) ATGServiceLocator.getInstance().getHome("mon_ejb",
Bean2Home.class);
bean2Remote = bean2Home.create();

Copyright : FERRARI Olivier


Field Summary
protected static java.util.logging.Logger logger_
          Gestion des logs
 
Method Summary
 javax.ejb.EJBHome getHome(java.lang.String name, java.lang.Class clazz)
          Retourne la home de l'ejb recherché.
static ATGServiceLocator getInstance()
           
protected  java.util.logging.Logger getLogger()
          Ecriture des logs
 
Methods inherited from class atg.util.service.ATGBasicClass
logConfig, logFine, logFiner, logFinest, logInfo, logSevere, logWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger_

protected static java.util.logging.Logger logger_
Gestion des logs

Method Detail

getLogger

protected java.util.logging.Logger getLogger()
Ecriture des logs

Overrides:
getLogger in class ATGBasicClass

getInstance

public static ATGServiceLocator getInstance()
                                     throws ATGServiceLocatorException
Throws:
ATGServiceLocatorException

getHome

public javax.ejb.EJBHome getHome(java.lang.String name,
                                 java.lang.Class clazz)
                          throws ATGServiceLocatorException
Retourne la home de l'ejb recherché.

Parameters:
name - String : nom du service désiré (doit correspondre à une entrée dans le fichier de constantes du type : name.name.
clazz - Class : classe correspondant à la home désiré
Returns:
EJBHome la home retournée
Throws:
ATGServiceLocatorException - Impossibilité de localiser le composant