Сервлет - много контекстов - как разделить соединение БД?

У меня есть.war файл A и.war файл B и.war файл C; B и C должны использовать подключение к базе данных, поэтому я решил использовать.war A для совместного использования подключения к базе данных. Но проблема в том, что файлы.war ограничены собственным контекстом. Итак, мой вопрос, как получить соединение с базой данных, чтобы поделиться им среди моих веб-приложений Tomcat? А как ограничить доступ к соединению только для нескольких приложений?

2 ответа

Решение

Вы, вероятно, на самом деле не хотите разделять одно соединение между приложениями. Вы, вероятно, хотите поделиться тем, что создает соединения, который должен быть пулом соединений. Поместите соответствующую реализацию DataSource в реестр JNDI Tomcat. Затем все приложения могут получить соединение из одного источника. Чтобы ограничить доступ к некоторым приложениям, просто заставьте их использовать метод getConnection(), который требует имя пользователя и пароль, и только приложения, имеющие учетные данные, могут использовать его.

Объявите в своем Tomcat's server.xml ресурс dataSource и ссылку, что в вашем context.xml, Это охватывает ваш случай.

Другие вопросы по тегам