у нас есть следующие настройки:
- Tomcat (веб-приложение) вызывает службу (Session Bean без сохранения состояния) в EAP JBoss 5.1.0 (EJB 3.0)
- JBoss имеет два разных контекста персистентности, определенных с использованием двух разных баз данных
- Службе JBoss необходимо знать, какой клиент вызвал ее службу, что-то вроде идентификатора (многопользовательский режим?)
мы могли бы изменить все методы обслуживания на стороне Jboss, чтобы принимать идентификатор клиента в качестве параметра. тогда нам нужно будет изменить каждый возможный вызов метода внутри службы, чтобы транспортировать этот идентификатор, что для меня кажется слишком сложным.
Сначала я подумал о чем-то похожем на переменную ThreadLocal ... что, по-моему, запрещено в мире Java EE.
Вам, ребята, известно какое-нибудь элегантное решение "транспортировки" идентификатора клиента? Я думаю, что JAAS делает нечто похожее, с помощью которого каждый вызов из «внешнего» мира фильтруется, и учетные данные пользователя применяются к каждому вызову. как только вызов входит в «мир обслуживания Jboss», все последующие вызовы методов имеют идентификацию вызывающего.
Я хочу, чтобы мое приложение было настолько «независимым от клиента», насколько возможно, оно должно просто получать правильную конфигурацию, «внедренную» (например, контекст постоянства), в зависимости от того, какой клиент вызвал службу. логика будет та же самая, просто разные ресурсы, которые она использует (какая-то архитектура перехватчиков).
Я немного растерялся. любая помощь высоко ценится.
веселит
Marcel