Java Spring Servlet не может найти Бин в другом ApplicationContext - PullRequest
2 голосов
/ 27 марта 2020

Я новичок в Java Spring, поэтому у меня могут возникнуть некоторые трудности с объяснением моих настроек.

У меня есть Java Spring Web Application, содержащее сервлет, которому требуется доступ к Бину. Однако проблема заключается в том, что Бин находится в другом общем файле проекта xml, который загружается при загрузке приложения.

Проект C

общий контекст. xml

<bean id="common-bean" ...>

CommonLoader.class

protected AbstractApplicationContext mContext;

public void start(String[] pArgs) {
   mContext = new ClassPathXmlApplicationContext("common-context.xml");
}

В другом проекте A у меня есть сервлет, которому требуется доступ к общему компоненту, однако он не может найти компонент.

Проект A

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  ApplicationContext mAppContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());

  for (String name : mAppContext.getBeanDefinitionNames()) {
    System.out.println(name);
  }
}

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

Есть ли какой-нибудь способ для них связаться или передать бин непосредственно сервлету?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...