2010-10-12 7 views
5

J'ai une application Web qui utilise JNDI pour localiser une source de données et un gestionnaire de transactions. Je vois dans la documentation de Jetty comment faire cela via le fichier jetty-env.xml. Cependant, il mentionne que ce fichier doit être placé dans le répertoire WEB-INF. Pourquoi suggéreraient-ils que les ressources JNDI soient configurées dans un fichier de configuration situé dans mon fichier WAR? Cela n'a aucun sens ... J'ai toujours pensé à JNDI comme un moyen d'externaliser la configuration. Y at-il un autre endroit où je peux mettre ce fichier sur une machine serveur Jetty? Une question de suivi: Qu'en est-il de mon module WAR Maven ... comment traiter ce fichier pour que je puisse utiliser le plugin Maven jetty pour le développement, mais que le fichier ne finisse pas dans le WAR?Confus au sujet de jetty-env.xml

Répondre

4

Y a-t-il un autre endroit où je peux mettre ce fichier sur un serveur Jetty?

La page officielle JNDI il met comme ceci:

Il y a 3 endroits où vous pouvez définir des entrées de nommage:

  1. jetty.xml
  2. WEB-INF/jetty-env.xml
  3. Context HTML

entrées Naming définies dans un fichier jetty.xml sera généralement scope soit au niveau jvm ou le niveau Server. Nommer les éléments dans un fichier jetty-env.xml sera généralement SCOPED à la webapp dans lequel le fichier réside, bien que vous êtes en mesure d'entrer dans ou jvm champs serveur si vous souhait, ce n'est pas vraiment recommandé. Dans la plupart des cas, vous définissez toutes les entrées de nom que vous souhaitez voir vers une instance de serveur particulière, ou vers le fichier jvm dans son ensemble dans un fichier jetty.xml . Les entrées dans un fichier xml de contexte seront généralement étendues au niveau de la webapp à laquelle il s'applique, bien qu'une fois de plus, vous pouvez fournir un niveau de portée moins strict du serveur ou jvm si vous voulez.

Utilisez jetty.xml pour configurer les éléments "en dehors" de la webapp.

Une question complémentaire: Que diriez-vous dans mon Maven module WAR ... comment dois-je faire face à ce dossier afin que je puisse utiliser le plugin jetée Maven pour le développement, mais pas le fichier fin dans la guerre ?

Utilisez le paramètre jettyConfig du Maven Jetty Plugin:

jettyConfigen option. L'emplacement d'un fichier jetty.xml qui sera appliqué en plus des paramètres de configuration du plugin.Vous pouvez l'utiliser si vous avez d'autres webapps, gestionnaires, etc. à déployer, ou si vous avez d'autres objets jetables qui ne peuvent pas être configurés à partir du plugin.

+0

Je l'accepte comme la réponse, mais la documentation Jetty (http://docs.codehaus.org/display/JETTY/jetty.xml) semble indiquer que jetty.xml est utilisé pour configurer le serveur plutôt que le web spécifique applications. En effet, il exige que les configurations dans plusieurs fichiers XML doivent utiliser le même ID de serveur (exemple: http://docs.codehaus.org/display/JETTY/Walkthrough+jetty.xml). Mais quel identifiant de serveur dois-je utiliser pour qu'il fonctionne correctement dans le contexte Maven? – HDave

+0

Je pense que je comprends que je n'ai pas besoin de mettre la nouvelle ressource JNDI dans un élément "Configure" pour le serveur, mais j'ai de la difficulté avec elle quand même. J'ai créé une nouvelle question: http://stackoverflow.com/questions/3925771/jetty-jndi-error-within-maven-jetty-plugin – HDave

+0

@HDave 'la documentation de Jetty (...) semblait indiquer que jetty.xml est utilisé pour configurer le serveur 'Oui, c'est correct. –

3

Le fichier jetty-env.xml n'est qu'une option supplémentaire pour définir les paramètres JNDI. Pour définir les paramètres JNDI en dehors du fichier WAR, vous pouvez les placer dans jetty.xml.

Voir related post ici et le Jetty docs for JNDI.

Questions connexes