8
votes

Qu'est-ce que Java: Règles de périmètre Comp / env?

Je comprends que java: comp / env est le nœud de l'arborescence JNDI où vous pouvez trouver des propriétés pour le composant Java EE actuel (une webApp ou un EJB), et aussi je sais que Chaque EJB a son propre environnement de composant, il existe également Java: global et Java: app et un java: module en fonction de cela que j'ai Questions

  1. Quand j'utilise contexte envContext = (contexte) initContext.lookup ("Java: comp / env"); Pour obtenir InitContext Quel contexte je reçois exactement (global, application, module, webapp ou ejb Contexte)?
  2. Il y a certaines règles appliquées pour la recherche de différentes étendues?
  3. Disons que je dispose d'une application Web avec de nombreux EJBS, cela signifie-t-il que de nombreux contextes initiaux (un pour webApp et un pour chaque EJB) ou toutes ces ressources sont collectées sous un contexte Java: Comp / env ?

    Merci beaucoup.


0 commentaires

4 Réponses :


0
votes
  1. Quand j'utilise contexte envContext = (contexte) initContext.lookup ("Java: Comp / env"); Pour obtenir InitContext Quel contexte je reçois exactement (global, application, module, WebApp ou EJB)?

    Vous obtenez celui que vous avez demandé, celui que vous avez correctement décrit comme «le composant Java EE actuel (une webApp ou un EJB)».

    1. Il y a certaines règles appliquées pour la recherche de différentes étendues?

      Vous recherchez dans la portée que vous spécifiez. Je ne sais pas ce que votre question pourrait signifier d'autre.

      1. Disons que j'ai une application Web avec de nombreux EJBS, cela signifie-t-il que j'ai de nombreux contextes initiaux (un pour WebApp et un pour chaque EJB) ou toutes ces ressources sont collectées sous un contexte Java: Comp / env? < / li>

        La question n'a pas de sens. Vous avez autant de initialcontextes comme vous le créez. Ce sont des objets. ce qu'ils font référence à dépend de ce que vous recherchez dans que initialContext . Si vous continuez à rechercher ", le composant Java EE actuel (WebApp ou un EJB)" , vous continuerez à obtenir exactement cela. Toutes les "ces ressources" sont "collectées" sous leurs propres noms respectivement, dans Java: comp / env . .


1 commentaires

Merci EJP.Le première et la troisième question, je veux dire qu'il existe IntialisContext pour la WebApp et Anther One pour les composants EJB et d'autres que je ne connais pas. La deuxième question que je connaisse sur quatre nœuds 'Java: Comp / env' 'Java: Global' 'Java: App' 'Java: Module' à quel ordre JNDI recherchera la ressource?



1
votes
  1. Quand j'utilise contexte envContext = (contexte) initContext.lookup ("Java: Comp / env"); Pour obtenir InitContext Quel contexte je reçois exactement (global, application, module, WebApp ou EJB)?

    Citation de la documentation de la Tomee http://tomee.apache.org/ Recherche d'une autre-EJBS-Exemple.html

    Dans une webApp, l'espace de nom Java: Comp / env est partagé par tous les servlets. Ceci est essentiellement équivalent à la Java: Espace de noms de module dans Java Ee 6. Comprendre qu'il y a un conflit dans la définition ici et que pour EJBS, Java: Comp est scopé au composant (l'EJB elle-même) et non le module comme avec webapps.

    1. Il y a certaines règles appliquées pour la recherche de différentes étendues?

      citant de Javaee 6 tutoriel http: // docs .oracle.com / CD / E19798-01 / 821-1841 / GIRGN / INDEX.HTML

      Le Java: Espace de noms JNDI global est la façon portable de trouver une télécommande haricots d'entreprise utilisant des recherches JNDI. Le Java: Espace de noms de module est utilisé Rechercher des haricots d'entreprise locaux dans le même module. Les Java: L'espace de noms des applications est utilisé pour rechercher les haricots d'entreprise locaux emballés dans la même application. C'est-à-dire que le haricot d'entreprise est emballé dans un fichier d'oreille contenant plusieurs modules Java EE.

      1. Disons que j'ai une application Web avec de nombreux EJBS, cela signifie-t-il que j'ai de nombreux contextes initiaux (un pour WebApp et un pour chaque EJB) ou toutes ces ressources sont collectées sous un contexte Java: Comp / env? < / li>

        Basé sur des liens ci-dessus, vous n'aurez pas beaucoup de contextes.


0 commentaires

0
votes

aussi loin de mes connaissances par défaut, la portée sera globale


0 commentaires

1
votes

Concernant la question 3 sur la portée de Java: Comp / env Code> en présence de EJBS.

traditionnellement (avant JEE 6) Java: Comp / env Code> était module Niveau pour Guerre Code> Modules et Niveau EJB pour EJBS In JAR code> Modules. Dans ce modèle, il faut définir des entrées d'environnement (via ressource-ref code> et env-entrée code> dans ejb-jar.xml code> ou pour la ressource -refs depuis que jee5, on pourrait utiliser @resource code> au niveau de la classe) pour chaque EJB. P>

<web-app>
  <env-entry>
    <env-entry-name>entry1</env-entry-name>        
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>value1</env-entry-value
  </env-entry>
</web-app>


0 commentaires