Насколько я знаю, в целом то, что вы ставите вне войны, доступно извне войны.
Да, JNDI - это своего рода «простой» способ определения источника данных. Однако это означает, что драйвер БД также будет развернут за пределами войны. Обычно этот подход хорош, когда необходимо разделить соединения драйвера между различными WAR. Ресурс загружается внутренним загрузчиком классов Tomcat, а не загрузчиком классов, назначенным WAR.
Я не знаю ни о каком способе или ограничении WAR такого глобального ресурса.
Итак, я думаю, что у вас здесь не так много вариантов: Если вы хотите определить источник данных «частного» приложения, вам придется определить его во время войны.
Вы сказали также, что «вы ограничены ресурсами, определенными в контексте application.xml приложения» и храните конфигурацию db вне WAR.
Почему у вас есть такое требование?
В целом возможно сохранить внешнюю конфигурацию (скажем, файл свойств) вне WAR, которая будет содержать хост/пользователь/пароль и остальные свойства соединения для базы данных вне WAR, но определить сам источник данных внутри WAR (скажем, весной или напрямую) с пулом подключений и всем остальным.
Если вам нужно выбрать только пару возможных конфигураций, также можно использовать профили весной, но поскольку я не знаю, используете ли вы весну вообще, ее трудно сделать какие-либо заявления и дать конкретные рекомендации Вот.
Возможно, это более предпочтительный подход в вашем случае?
Надеется, что это помогает, Марк
Спасибо Марку, На самом деле мой менеджер хочет код, чтобы быть свободным от каких-либо учетных данных БДА и так как он развертывается в диффе сред, проп-файлы используются в каждом окр для подключения к БД. и datasource используются в server.xml. но проблема в том, что источник данных загружается при каждом развертывании приложений. – ViS
Конечно. В этом случае вы должны определить источник данных внутри приложения, но оставить свойства со всеми учетными данными снаружи в качестве внешних параметров. –