Я готовлю веб-приложение J2EE, которое, мы надеемся, должно быть упаковано и продано клиентам в виде файла war
. Каждый клиент развернет пакет на своем предпочтительном сервере приложений и будет использовать приложение со своим предпочтительным источником данных.
Мне интересно, как лучше переносить способ определения необходимых сопоставлений с источником данных.
Приложение использует поставщик сохраняемости EclipseLink JPA. Точка входа выглядит примерно так:
@PersistenceContext(unitName = "myPersistenceUnit")
private EntityManager em;
myPersistenceUnit
описывается в persistence.xml
следующим образом:
<persistence-unit name="myPersistenceUnit" transaction-type="JTA">
<jta-data-source>myDataSource</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
Теперь я предполагаю, что мне нужно каким-то образом сопоставить myDataSource
с именем ресурса JNDI сервера приложений, но я теряюсь, как это сделать. Если я использую код, автоматически сгенерированный NetBeans на сервере GlassFish, он создает дескриптор glassfish-resources.xml для этой цели. Этот подход работает, но не переносим на другие серверы приложений и производит дублирование свойств пула соединений (которые уже определены на сервере приложений).