Я не слишком знаком с Tomcat, но моя команда унаследовала сложный проект, который вращается вокруг сервлета Java, размещенного в Tomcat на многих серверах. Пользовательское программное обеспечение для управления конфигурацией используется для записи server.xml, а различные ресурсы (пулы соединений, компоненты, переменные сервера и т. Д.), Записанные в server.xml, конфигурируют сервлет. Это все хорошо.
Однако названия некоторых ресурсов заранее неизвестны. Например, сервлету может потребоваться доступ к любому количеству «анонимайзеров», настроенных оператором. Каждый анонимайзер имеет уникальное имя, связанное с ним. Мы создаем и настраиваем каждый анонимайзер с использованием Java-бинов, как показано ниже:
<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"
/>
Однако, похоже, это требует от нас наличия явных записей в файле context.xml сервлета для каждого каждого возможного имени ресурса. Я хотел бы заменить явные записи context.xml подстановочными знаками или узнать, есть ли лучшее решение для этого типа проблемы.
В настоящее время:
<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"/>
Заменено на что-то вроде:
<ResourceLink name="bean/Anonymizer_*"
global="bean/Anonymizer_*"
type="com.company.tomcatutil.AnonymizerBean"/>
Однако я не смог выяснить, возможно ли это или какой может быть правильный синтаксис. Кто-нибудь может сделать какие-либо предложения о лучших способах справиться с этим?