Frage

Ich bin nicht allzu vertraut mit Tomcat, aber mein Team hat ein komplexes Projekt geerbt, die ein Java-Servlet dreht sich um über mehrere Server hinweg in Tomcat gehostet. Individuelle Konfigurationsmanagement-Software wird verwendet, um die server.xml zu schreiben und verschiedene Ressourcen (Verbindungspools, Bohnen, Servervariablen, etc.) geschrieben in server.xml konfigurieren Sie den Servlet. Das ist alles schön und gut.

Allerdings sind die Namen einiger der Ressourcen nicht im Voraus bekannt. Zum Beispiel kann das Servlet benötigen Zugriff auf eine beliebige Anzahl von „Anonymisierer“, wie durch den Bediener konfiguriert sind. Jeder Anonymisierungs hat einen eindeutigen Namen mit ihm verbunden ist. Wir erstellen und jedes Anonymisierungs mit Java Beans konfigurieren ähnlich der folgenden:

<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"
/>

Allerdings scheint dies uns zu verlangen, für jeden einen jeden möglichen Ressourcennamen im Voraus explizite Einträge in dem Servlet context.xml Datei zu haben. Ich mag die expliziten context.xml Einträge mit Platzhalter ersetzen, oder wissen, ob es eine bessere Lösung für diese Art von Problem ist.

Derzeit:

  <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"/>

ersetzt durch so etwas wie:

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

Allerdings habe ich, um herauszufinden, nicht in der Lage gewesen, wenn dies möglich ist, oder das, was die korrekte Syntax sein könnte. Kann jemand irgendwelche Vorschläge über bessere Möglichkeiten, dies zu umgehen?

War es hilfreich?

Lösung

Ich habe über diese nicht kommen, aber es könnte einfacher sein, so etwas wie eine AnonymizerService als Ressource zu haben, die alle verschiedenen erforderlichen AnonymizerBeans enthüllt. Auf diese Weise haben Sie keine Probleme mit Wildcards, haben nur eine Ressource auf der Web-Anwendung zu veröffentlichen, und Sie sind wieder auf dem gut definierten und gut verstanden Weg.

Hope, die etwa einen Monat nach der ersten Frage hilft ...

Andere Tipps

Ich weiß nicht, ob es das, was Sie benötigen, aber vielleicht können Sie Ihre eigene benutzerdefinierte Ressource Fabrik für Tomcat zu untersuchen, zu schaffen. Hier ist die allgemeine Dokumentation für alle Dinge Ressourcen über Tomcat: Tomcat Ressourcen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top