2009-12-04 5 views

Répondre

5

Voici mon top trois:

  1. Manquant documentation
  2. demi-cœur API
  3. n'ai trouvé personne à l'utiliser en dehors des serveurs d'applications

il y a quelques tutoriels comment utiliser JNDI mais la plupart du temps, vous serez coincé quand quelque chose ne va pas. L'implémentation désapprouve également les messages d'erreur utiles. Si une clé ne peut pas être trouvée, alors vous obtenez juste le nom de clé le plus à l'intérieur - le chemin plomb à la clé est manquant.

Il n'y a également aucun moyen de naviguer dans la hiérarchie JNDI. Quel est le point d'avoir une hiérarchie avec les parents et les enfants lorsque vous ne pouvez pas naviguer?

Et qu'en est-il de java:comp/env? Pourquoi est-ce là? Quand puis-je l'omettre? Quand dois-je l'utiliser? Est-ce que quelqu'un a déjà ajouté un arbre qui ne commence pas par java:?

5

La question est un peu vague, mais voici quelques points à considérer et qui concerne JNDI.

  1. au profit de JNDI est que la création d'objets est découplée de l'objet recherche
  2. recherche directe dans JDNI gêne testabilité, préfèrent l'injection si possible
  3. si vous utilisez encore recherche directe, vous aurez besoin de se moquer JNDI soit vous-même ou en utilisant une file-system mise en œuvre
  4. se méfier classloader problème si vous l'utilisez dans l'application. serveur
  5. les paramètres utilisés dans ObjectFactory sont en quelque sorte obscur si vous envisagez de mettre en œuvre votre propre usine d'objets (contexte, environnement, etc.)
  6. chaque machine virtuelle Java a sa propre JNDI. Lorsqu'un client recherche un EJB distant, une fabrique spéciale est utilisée pour renvoyer une référence distante à l'EJB, mais le JNDI est lui-même local. (Notez qu'il existe une implémentation JNDI en cluster, mais je n'ai aucune expérience en la matière).
  7. La dénomination des EJB dépendra de l'application. serveur
  8. JNDI globale et locale est toujours une source de confusion
  9. Je ne l'ai jamais vu personne la recherche d'un répertoire JNDI, seul exemple de recherche

je JDNI pour mettre en œuvre des ressources personnalisées dans Glassfish et qui était D'ACCORD. Mais j'ai trouvé que JNDI était une source fréquente de confusion.