Подстановочные знаки для ресурсов в context.xml сервлета Tomcat

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

  •  09-06-2019
  •  | 
  •  

Вопрос

Я не слишком хорошо знаком с 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top