Я пишу веб-приложение JSF 2.1, которое размещается на Tomcat 6.
Во время выполнения я хотел бы получить набор сложных параметров, связанных с внешними службами.
Во время разработки я не знаю, какими будут эти параметры или как они могут быть.
Параметры будут установлены нашим оперативным персоналом и поэтому должны быть определены вне файла .war..
Я думал, что context.xml поможет (т. Е. TOMCAT_HOME/conf/Catalina/localhost/MyWebApp.xml
), но он может принимать только скалярные параметры, и, похоже, я никак не могу перебрать их.
Вот пример того, к чему я хотел бы получить доступ во время выполнения.
<services>
<service id="bbc" name="BBC Weather" url="http://www.bbc.co.uk/weather/" />
<service id="underground" name="Weather Underground" url="http://www.wunderground.com/weather/api/">
<login username="test" password="test" />
</service>
<service id="network" name="The Weather Network" url="http://www.theweathernetwork.com/">
<method type="post" />
</service>
</services>
Есть ли надежный способ, которым я могу программно получить доступ к TOMCAT_HOME/conf/Catalina/localhost/MyWebApp.xml
? я знаю, как получить путь к TOMCAT_HOME , но наши сотрудники могут изменить имя хоста или движка Tomcat.
В качестве обходного пути я всегда могу записать один параметр в контекст.xml следующим образом.
<Parameter name="config.file" value="C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/Catalina/localhost/MyConfigFile.xml" />
Но это также дополнительная ошибка, дополнительный шаг в инструкциях по установке, необходимо сохранить и т. д.
Я уверен, что долженбыть простым способом сделать это, чего мне не хватает?
Заранее спасибо, Адам.