Привязать источник данных Spring к JNDI - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть подпружиненное приложение на основе пружинной загрузки, которое развернуто во внешнем экземпляре *1001*.

Приложение создает несколько источников данных. Эти источники данных добавляются в entitymanager, и менеджер транзакций настраивается соответствующим образом.

Однако недавно мы программно интегрировали инструмент ETL, который работает с источниками данных JNDI. Задача здесь состоит в том, чтобы связать текущие источники данных Spring в дереве JNDI при запуске.

Я попытался создать начальный контекст после создания bean-источника данных и связать там источники данных, однако я вижу исключение NoInitialContext, являющееся брошено.

Как я могу связать эти источники данных весны в дерево JNDI внешнего кота? Благодарим за помощь!

Примечание: я не могу / не могу редактировать конфигурацию Tomcat, поскольку она инициализируется из шаблона PaaS. Поэтому необходимо работать над подходом, позволяющим связываться с деревом JNDI из приложения.

1 Ответ

0 голосов
/ 16 апреля 2020

AFAIK это невозможно. Взгляните на спецификацию JEE c:

Контейнер должен гарантировать, что экземпляры компонента приложения имеют доступ только на чтение к своему контексту именования. Контейнер должен генерировать исключение javax.naming.OperationNotSupportedException из всех методов интерфейса javax.naming.Context, которые изменяют контекст именования среды и его подконтексты. Джакарта EE Spe c - Ресурсы, Нейминг и Внедрение

См. В этом посте есть несколько интересных примеров кода, если вы хотите поиграть.

ИМХО, вы можете достичь желаемого, создав ресурсы JNDI и передав их в EntityManger / Spring. Но это означает, что конфигурация будет существовать вне Spring полностью. Так что это может не делать то, что вы хотите.

...