Я запускаю несколько приложений сервлета в Tomcat (5.5). Все сервлеты используют общий заводский ресурс, который используется совместно с JNDI. На данный момент я могу заставить все работать, включив в качестве источника GlobalNamingResource в файле /conf/server.xml заводский ресурс, а затем, если каждый файл сервлета META-INF/context.xml содержит ресурс ResourceLink. Ниже приведены фрагменты файлов XML. ПРИМЕЧАНИЕ. Я не знаком с tomcat, поэтому я не говорю, что это хорошая конфигурация !!!Общие ресурсы JNDI в Tomcat
Однако теперь я хочу, чтобы установить эти сервлеты в несколько экземпляров tomcat автоматически с помощью RPM. RPM сначала скопирует WARs в каталог webapps и банки для фабрики в каталог common/lib (что хорошо). Но также необходимо убедиться, что заводский ресурс включен как ресурс для всех сервлетов.
Каков наилучший способ добавить ресурс по всему миру? Я не слишком увлекаюсь написанием скрипта, который входит в файл server.xml и добавляет в ресурс таким образом. Есть ли способ добавить несколько файлов server.xml, чтобы я мог написать новый файл server-app.xml, и он будет конкатенировать мои настройки с server.xml? Или, еще лучше добавить этот ресурс JNDI ко всем сервлетам без использования server.xml?
p.s. Перезапуск сервера не будет проблемой, поэтому я не против, если изменения не получат автоматически.
Благодаря
Отрывок из server.xml
<!-- Global JNDI resources -->
<GlobalNamingResources>
<Resource name="bean/MyFactory"
auth="Container"
type="com.somewhere.Connection"
factory="com.somewhere.MyFactory"/>
</GlobalNamingResources>
/context.xml файл META-INF В всей сервлета
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<ResourceLink global="bean/MyFactory"
name="bean/MyFactory"
type="com.somewhere.MyFactory"/>
</Context>
Что делает заводской ресурс? У меня похожая ситуация, я пытаюсь решить, но не знаю, как это сделать. Например, можно ли создать только один экземпляр объекта? См. Http://stackoverflow.com/questions/9453109/using-jndi-to-share-servlet-session-objects-and-data-in-tomcat – ziggy