У нас есть два разных приложения, развернутых на разных серверах Tomcat. Одно приложение разработано с использованием технологий JSF, Spring + hibernate, а другое - с использованием простой технологии Java EE Servlets.
Приложение JSF взаимодействует с приложением Servlet для извлечения данных и вызывает сервлет, используя следующий способ из приложения JSF:
URL url = new URL(“urlofservlets”); // http://application.com/servletName
URLConnection conn = url.openConnection();
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
in.readLine();
}
catch(Exception ex) {
logger.error(ex);
}
Теперь ответ сервлета отображается на странице JSF следующим образом:
<rich:modalPanel id="report_preview_modal_panel" moveable="false" minWidth="1200" minHeight="450">
<iframe id="report_preview_iframe" frameborder="2" src="${(rportController.reportPreviewUrl == null) ? 'about:blank' : reportController.reportPreviewUrl}" style="width:100%;height:390px;"></iframe>
</rich:modalPanel>
Тег iFrame будет отображать HTTP-ответ от сервлетов (используя URL-адрес сервлета, т.е. reportController.reportPreviewUrl
содержит URL-адрес сервлета).
Теперь мы хотим реализовать вместо загрузки данных ответа http из сервлетов в теге iFrame, эти данные должны быть показаны в таблице данных JSF. Но нам нужно получить данные из ответа сервлета таким образом, чтобы JSF мог получить доступ к контексту приложения сервлета.
Таким образом, мы можем сохранить компонент в атрибуте сеанса сервлета и получить доступ к нему в приложении JSF для отображения данных в таблице данных JSF. Это возможно? Как мы можем получить контекст другого приложения (т.е. здесь из сервлета) в приложении JSF. Есть ли способ сделать это?