Сервлет - много контекстов - как разделить соединение БД?
У меня есть.war файл A и.war файл B и.war файл C; B и C должны использовать подключение к базе данных, поэтому я решил использовать.war A для совместного использования подключения к базе данных. Но проблема в том, что файлы.war ограничены собственным контекстом. Итак, мой вопрос, как получить соединение с базой данных, чтобы поделиться им среди моих веб-приложений Tomcat? А как ограничить доступ к соединению только для нескольких приложений?
2 ответа
Вы, вероятно, на самом деле не хотите разделять одно соединение между приложениями. Вы, вероятно, хотите поделиться тем, что создает соединения, который должен быть пулом соединений. Поместите соответствующую реализацию DataSource в реестр JNDI Tomcat. Затем все приложения могут получить соединение из одного источника. Чтобы ограничить доступ к некоторым приложениям, просто заставьте их использовать метод getConnection(), который требует имя пользователя и пароль, и только приложения, имеющие учетные данные, могут использовать его.
Объявите в своем Tomcat's server.xml
ресурс dataSource и ссылку, что в вашем context.xml
, Это охватывает ваш случай.