Подстановочные знаки для ресурсов в context.xml сервлета Tomcat
Вопрос
Я не слишком хорошо знаком с 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"/>
Однако мне не удалось выяснить, возможно ли это или какой может быть правильный синтаксис.Может ли кто-нибудь дать какие-либо предложения о лучших способах справиться с этим?
Решение
Я с этим не сталкивался, но, возможно, было бы проще иметь что-то вроде AnonymizerService в качестве ресурса, который раскрывает все необходимые AnonymizerBeans.Таким образом, у вас не возникнет проблем с подстановочными знаками, вам придется опубликовать только один ресурс в веб-приложении, и вы вернетесь на четко определенный и понятный путь.
Надеюсь, это поможет примерно через месяц после первоначального вопроса...
Другие советы
Я не знаю, нужно ли это вам, но, возможно, вы захотите изучить возможность создания собственной фабрики ресурсов для Tomcat.Вот общая документация для всех ресурсов через Tomcat: Ресурсы Tomcat