Как привязать компонент spring к JNDI, чтобы к нему можно было получить доступ из другого war?

#java #spring #spring-boot #wildfly #jndi

#java #spring #spring-boot #wildfly #jndi

Вопрос:

У меня есть WAR и EAR, развернутые в wildfly. В ear есть приложение spring boot, которое запускает определенный компонент. Я хочу, чтобы этот экземпляр компонента был доступен в jndi примерно так

java:/mypringbean

чтобы я мог выполнить поиск из WAR (который снова имеет контекст spring). Цель состоит в том, чтобы повторно использовать экземпляр, который был создан из EAR spring boot.

Прежде всего, я не уверен, возможно ли это вообще, я пробовал https://konstantinpavlov.net/blog/2009/01/01/how-to-export-spring-managed-bean-to-jndi но, похоже, это не работает, после того, как я добавил код сверху, я не вижу записи в консоли управления wildfly в представлении JNDI.

Ответ №1:

Выберите один из классов, в котором выполняется загрузка вашего приложения Spring. В моем случае был класс автозагрузки, который запускался при запуске приложения. Затем я @автоматически подключил компонент к этому классу. Получил IntialContext и привязал компонент.

Context ctx = new InitialContext(); ctx.bind(«mySpringBean», mySpringBean);