2010-01-15 4 views
0

Я пытался выяснить, как создать общую сессионную службу Hibernate на Tomcat 6. в основном, мне нужно иметь эту услугу: 1. быть повторно развернутым (что исключает JNDI-сервис); 2. Все веб-приложения могут совместно использовать одни и те же сеансы Hibernate (кеш). Механизм загрузки класса Tomcat, похоже, делает невозможным совместное использование сеансов db. Я мог бы создать веб-приложение с помощью Spring HttpInvoker, которое может использоваться другими веб-приложениями. Или я мог бы пойти с Spring dm-Server, но, похоже, сложность решения будет сопоставима с сложностью сервера приложений (JBoss или Glassfish). Что было бы жизнеспособным решением?Общие услуги на Tomcat 6?

ответ

1

Вы можете использовать 2nd level cache

Помимо этого - давайте предположим, что вы хотите модуляризуете вам приложение, и это причина для двух (или более) WebApps. Но если вы хотите кэшировать объекты из двух разных веб-приложений, это означает, что в обоих случаях существуют одинаковые классы сущностей. Что само по себе не так, но с тем же кэшем для этих объектов в различных контекстах кажется неправильным. Возможно, вам не нужны два веб-приложения?

Если вы уверены, что вам это нужно, вы можете попробовать выполнить заказ Tomcat valve, но я не могу дать вам ни рекомендаций, ни деталей об этом.

+0

Клапан Tomcat - интересная идея. Я обязательно проверю это. Практика сама по себе не совсем изящна. Мы рассматриваем несколько веб-приложений GWT для совместного использования одной сессии сессии Hibernate. Благодарю. – renfred