Weblogic vs EJB vs JSF vs JAVA EE

derrière ce titre un rien provocateur, voici en résumé les différents écueils que je rencontre avec Weblogic Server. Weblogic Server est l’un des rares serveurs commerciaux à s’être mis à JAVA EE 5. Super me direz vous mais bon, dès que l’on gratte un petit peu, ca fait un peu canada dry: ça ressemble à du java ee 5 mais ça n’en n’est pas trop…..

Une application JAVA EE 5 ressemble plus ou moins à ca :

1 JSF <-> 1 managed bean <-> 1 EJB Session <-> 1 POJO

L’implémentation JSF par défaut

Après une installation standard de WLS, on peut voir que l’implémentation par défaut est JSF 1.1. Pas trop gênant me direz vous … Ben oui mais si on utilise JSF 1.1, on ne peut pas utiliser les annotations, notion apportée par J2SE 5. Donc exit les annotations @EJB qui permettraient l’injection automatique des EJB3

Exemple:

On doit faire à l’ancienne qq chose comme ca dans le constructeur ou en lazy loading ProduitService service = new InitialContext().lookup(« java:comp/env/ProduiService »);

La vous me direz que ce n’est pas trop la mer à boire et que le nommage JNDI est pas trop mal. Erreur!!!! Je n’ai toujours pas réussi à faire un chargement d’une interface locale via JNDI. Au pire on peut faire une recherche sur une interface de type Remote. Si on aime faire de la sérialisation et des broadcasts réseau, pourquoi pas. On aura donc le pattern suivant :

Dans l’ejb :

Bref, sur ce coup, BEA a pensé à la simplicité de codage 🙂

Mise en œuvre de l’implémentation JSF 1.2

On peut quand mettre en œuvre l’implémentation JSF 1.2 de SUN. Elle est disponible en tant que bibliothèque partagée et installable en tant que librairie partagée. Dans ce cas l’injection par annotation fonctionne correctement. L’ IDE BEA WORKSHOP ( logiquement adapté au serveur) ne peut prendre en compte cette version 😀 . Retour à notepad ou à ECLIPSE EUROPA.

Utilisation des EJB

Bon la pas grand chose à dire, si ce n’est l’utilisation en mode déconnecté (ex. dans un test unitaire). Il faut utiliser un enhancer pour pouvoir exécuter le contexte de persistence.

Exemple :

De plus, pas moyen d’utiliser proprement des EJB Session dans les tests unitaires, à la manière de JBOSS EMBEDDED. Bref, comme disait notre ancien président, ca m’en tape une sans toucher l’autre…

Enfin, l’IDE BEA WORKSHOP ne propose pas par défaut la création de projets EJB3/JPA, ce qui rend l’utilisation de cet IDE presque impossible avec cette technologie…

Conclusion

Le développement JAVA EE5 n’est pas encore totalement à l’ordre du jour. Je n’ai pas encore testé la version 10.3 qui est en « technoloy preview », espérons que BEA aille dans le bon sens ….

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *