Инициализация ресурсов Memcached / JDBC для сервлета JAX-RS - PullRequest
2 голосов
/ 20 ноября 2011

У меня есть служба, в которой я хочу сохранить постоянство данных в базе данных mysql, используя jdbc. Хотя у меня есть опыт создания приложений jdbc и jax-rs в отдельности, я никогда не совмещал их. Вопрос в том, куда идут сборка и разборка, необходимая для вещей типа jdbc? Обычно я помещаю сборку в статический блок или в конструктор, и у id есть метод очистки, который вызывается в finally. похоже, это не работает в среде jax-rs - конструктор вызывается при каждом вызове, и, насколько мне известно, нет места для применения каких-либо методов очистки. К сожалению, есть редкие примеры объединения двух технологий в Интернете, что меня удивляет. Ребята, вы можете мне помочь?

1 Ответ

2 голосов
/ 21 ноября 2011

Как правило, чтобы что-то делать при запуске и завершении работы вашего веб-приложения, вы должны создать пользовательские ServletContextListeners и перечислить их в своем файле web.xml.

При наличии ресурсов JDBC в WAR часто ваш контейнер (например, Tomcat, Websphere и т. Д.) Часто создает пул соединений и управляет ими, которые могут использоваться несколькими веб-приложениями. Вы должны определить resource-ref для javax.sql.DataSource в вашем web.xml. Кроме того, существует специальный контейнерный метод для определения и привязки источника данных JDBC к resource-ref вашего приложения.

Я не знаком с Memchached и тем, что нужно при запуске / завершении работы, так что это только предположение. Если вам нужно зарегистрироваться / отменить регистрацию на сервере Memcache, вы можете попробовать указать один или несколько тегов env-entry, определенных в вашем файле web.xml, которые могут использоваться пользовательским ServletContextListener для выполнения ваших ставок.

...