2015-12-09 5 views
0

У меня есть веб-приложение, которое получает соединение с базой данных с помощью тега JNDI ресурсов в любом <GlobalNamingResources> тег в server.xml или <Context> тега в context.xml.Как загрузить JNDI ресурсов кот/контекст на конкретном веб-приложении развернуть событие

Но даже в любом случае ресурс вызывается для каждого веб-приложения в Tomcat. Есть ли способ определить ресурс для загрузки только для определенного веб-приложения.

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

В настоящее время я сохранил его в теге <GlobalNamingResources> и его загружается для всех веб-приложений.

Любые идеи?

ответ

1

Насколько я знаю, в целом то, что вы ставите вне войны, доступно извне войны.

Да, JNDI - это своего рода «простой» способ определения источника данных. Однако это означает, что драйвер БД также будет развернут за пределами войны. Обычно этот подход хорош, когда необходимо разделить соединения драйвера между различными WAR. Ресурс загружается внутренним загрузчиком классов Tomcat, а не загрузчиком классов, назначенным WAR.

Я не знаю ни о каком способе или ограничении WAR такого глобального ресурса.

Итак, я думаю, что у вас здесь не так много вариантов: Если вы хотите определить источник данных «частного» приложения, вам придется определить его во время войны.

Вы сказали также, что «вы ограничены ресурсами, определенными в контексте application.xml приложения» и храните конфигурацию db вне WAR.

Почему у вас есть такое требование?

В целом возможно сохранить внешнюю конфигурацию (скажем, файл свойств) вне WAR, которая будет содержать хост/пользователь/пароль и остальные свойства соединения для базы данных вне WAR, но определить сам источник данных внутри WAR (скажем, весной или напрямую) с пулом подключений и всем остальным.

Если вам нужно выбрать только пару возможных конфигураций, также можно использовать профили весной, но поскольку я не знаю, используете ли вы весну вообще, ее трудно сделать какие-либо заявления и дать конкретные рекомендации Вот.

Возможно, это более предпочтительный подход в вашем случае?

Надеется, что это помогает, Марк

+0

Спасибо Марку, На самом деле мой менеджер хочет код, чтобы быть свободным от каких-либо учетных данных БДА и так как он развертывается в диффе сред, проп-файлы используются в каждом окр для подключения к БД. и datasource используются в server.xml. но проблема в том, что источник данных загружается при каждом развертывании приложений. – ViS

+0

Конечно. В этом случае вы должны определить источник данных внутри приложения, но оставить свойства со всеми учетными данными снаружи в качестве внешних параметров. –

 Смежные вопросы

  • Нет связанных вопросов^_^