Ich bin nicht mit Tomcat vertraut, aber mein Team hat ein komplexes Projekt geerbt, das sich auf ein Java-Servlet konzentriert, das in Tomcat auf vielen Servern gehostet wird. Eine benutzerdefinierte Konfigurationsverwaltungssoftware wird verwendet, um die server.xml zu schreiben, und verschiedene Ressourcen (Verbindungspools, Beans, Servervariablen usw.), die in server.xml geschrieben sind, konfigurieren das Servlet. Das ist alles gut und gut.Platzhalter für Ressourcen in einem Tomcat-Servlet context.xml
Die Namen einiger Ressourcen sind jedoch nicht im Voraus bekannt. Zum Beispiel benötigt das Servlet möglicherweise Zugriff auf eine beliebige Anzahl von "Anonymizern", wie vom Betreiber konfiguriert. Jedem Anonymizer ist ein eindeutiger Name zugeordnet. Wir erstellen und konfigurieren Sie jeden Anonymisierungs mit Java Beans ähnlich den 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"
/>
Doch dies scheint 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 möchte die expliziten context.xml-Einträge durch Platzhalter ersetzen oder wissen, ob es für diesen Problemtyp eine bessere Lösung gibt.
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 machen, wie man damit besser umgehen kann?
Das beantwortet einen Teil der Frage. Es scheint keine Möglichkeit zu geben, einen ResourceLink mit irgendeiner Form von Namens-Wildcard zu definieren. Vielleicht könnten wir versuchen, dies zu erreichen, indem wir Ressourcen irgendwie zusammenfassen, so dass alle Anonymizer context.xml als eine einzige Ressource passieren. – DonGar