Общие ресурсы JNDI в Tomcat

Я запускаю несколько приложений сервлета в Tomcat (5.5). Все сервлеты используют общий ресурс фабрики, который делится с помощью JNDI. В данный момент я могу получить все работающее включением ресурса фабрики как GlobalNamingResource в файле /conf/server.xml, и затем наличие файла META-INF/context.xml каждого сервлета включает ResourceLink в ресурс. Отрывки от XML-файлов включены ниже.Примечание: Я не настолько знаком с котом, таким образом, я не говорю, что это - хорошая конфигурация!!!

Однако я теперь хочу смочь, устанавливают эти сервлеты в несколько экземпляров кота автоматически с помощью об/мин. об/мин Во-первых скопирует ВОЙНЫ в каталог веб-приложений и банки для фабрики в общий каталог / каталог 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> 

Файл META-INF/context.xml всего сервлета

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <ResourceLink global="bean/MyFactory"
                name="bean/MyFactory"
                type="com.somewhere.MyFactory"/>
  </Context>
6
задан Can Berk Güder 23 February 2010 в 12:29
поделиться

2 ответа

Начиная с Tomcat 4, рекомендуется не помещать какую-либо информацию JNDI в файл server.xml . См. документацию Tomcat 5.5 :

Для Tomcat 5, в отличие от Tomcat 4.x, НЕ рекомендуется размещать элементы непосредственно в server.xml { {1}} файл. Это связано с тем, что это делает изменение конфигурации контекста более инвазивным, поскольку главный файл conf / server.xml не может быть перезагружен без перезапуска Tomcat.

Я знаю, что вы утверждаете, что не заботитесь об этом, но поверьте мне, ваша группа развертывания заботится, и группа обслуживания поблагодарит вас позже. Даже если это означает, что вы в конечном итоге благодарите себя.

Если вам нужно, чтобы настройки JNDI были общими для всех веб-приложений на сервере, вы должны поместить их в файл $ CATALINA_HOME / conf / context.xml. По всей вероятности, в этом месте уже будет существующий context.xml, но вы должны иметь возможность написать простое приложение для добавления узлов ресурсов через ваш любимый язык и любой построитель DOM, поставляемый в комплекте с ним. Или, если вы хотите придерживаться командной строки, ознакомьтесь с этой статьей , в которой приведены несколько сценариев оболочки для обработки XML, которые могут вам помочь.

Удачи!

1
ответ дан 17 December 2019 в 20:31
поделиться

Это не является прямым ответом на ваш вопрос, но не рассматривали ли вы возможность размещения всех конфигураций в файле context.xml, а не в server.xml? Это сделает ваше веб-приложение более самодостаточным, что, похоже, важно для ваших требований к развертыванию.

Я бы даже сказал, что стоит рассмотреть любой рефакторинг, необходимый для обеспечения полной самодостаточности ваших приложений, если это невозможно сделать в настоящее время.

Поработав над проектами, где я развертывал /common/lib JAR и общие ресурсы, и был укушен ими запутанными и тонкими способами (в конце концов, я выяснил, что это неизменно была моя собственная вина, не обвиняя здесь Tomcat), я теперь предпочитаю полностью защитный подход к своим веб-приложениям: держать их полностью независимыми.

Но, конечно, я не знаю всех ваших обстоятельств, просто некоторые предложения.

0
ответ дан 17 December 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: