Caractères génériques pour les ressources dans le fichier context.xml d'un servlet Tomcat

StackOverflow https://stackoverflow.com/questions/68120

  •  09-06-2019
  •  | 
  •  

Question

Je ne connais pas trop Tomcat, mais mon équipe a hérité d'un projet complexe qui consiste à héberger un servlet Java hébergé dans Tomcat sur de nombreux serveurs. Le logiciel de gestion de configuration personnalisé est utilisé pour écrire le fichier server.xml. Diverses ressources (pools de connexion, beans, variables de serveur, etc.) écrites dans server.xml configurent le servlet. C’est bien beau.

Cependant, les noms de certaines des ressources ne sont pas connus à l'avance. Par exemple, le Servlet peut avoir besoin d'accéder à un nombre quelconque de " Anonymiseurs " tel que configuré par l'opérateur. Chaque anonymiseur est associé à un nom unique. Nous créons et configurons chaque anonymiseur en utilisant des beans java similaires au suivant:

<Resource
  name="bean/Anonymizer_toon"
  type="com.company.tomcatutil.AnonymizerBean"
  factory="org.apache.naming.factory.BeanFactory"
  className="teAnonymizer"
  databaseId="50"
/>
<Resource
  name="bean/Anonymizer_default"
  type="com.company.tomcatutil.AnonymizerBean"
  factory="org.apache.naming.factory.BeanFactory"
  className="teAnonymizer"
  databaseId="54"
/>

Cependant, cela semble nécessiter que nous ayons des entrées explicites dans le fichier context.xml du Servlet pour chaque nom de ressource possible à l’avance. J'aimerais remplacer les entrées context.xml explicites par des caractères génériques ou savoir s'il existe une meilleure solution à ce type de problème.

Actuellement:

  <ResourceLink name="bean/Anonymizer_default"
                global="bean/Anonymizer_default"
                type="com.company.tomcatutil.AnonymizerBean"/>

  <ResourceLink name="bean/Anonymizer_toon"
                global="bean/Anonymizer_toon"
                type="com.company.tomcatutil.AnonymizerBean"/>

remplacé par quelque chose comme:

  <ResourceLink name="bean/Anonymizer_*"
                global="bean/Anonymizer_*"
                type="com.company.tomcatutil.AnonymizerBean"/>

Cependant, je n'ai pas été en mesure de déterminer si cela était possible ou quelle serait la syntaxe correcte. Quelqu'un peut-il faire des suggestions sur de meilleurs moyens de gérer cela?

Était-ce utile?

La solution

Je ne l'ai pas encore rencontrée, mais il serait peut-être plus facile d'avoir quelque chose comme AnonymizerService en tant que ressource qui révèle tous les différents AnonymizerBeans requis. De cette façon, vous n’aurez aucun problème avec les caractères génériques, vous n’avez pas à publier une seule ressource dans l’application Web et vous êtes de retour sur le chemin bien défini et bien compris.

J'espère que cela aidera environ un mois après la question initiale ...

Autres conseils

Je ne sais pas si c'est ce dont vous avez besoin, mais vous voudrez peut-être envisager de créer votre propre fabrique de ressources personnalisée pour Tomcat. Voici la documentation générale sur toutes les ressources via Tomcat: Ressources Tomcat

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top