我們必須部署在不同的Tomcat服務器兩個不同的應用。一個應用程序是使用JSF,Spring + hibernate技術開發的,另一個是使用普通Java EE Servlets技術開發的。如何從不同的應用程序訪問servlet上下文JSF
JSF應用程序與Servlet應用獲取數據交互,使用從JSF應用程序通過以下方式調用這個servlet:使用以下方式
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);
}
現在servlet響應顯示在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的標記將顯示從servlet的HTTP響應(使用servlet的URL即reportController.reportPreviewUrl
包含servlet URL)。
現在我們要實現是什麼,而不是加載在iframe標記的servlet的HTTP響應數據,數據必須在JSF數據表中。但是我們需要從JSF可以訪問servlet應用程序上下文的方式獲取來自servlet響應的數據。
所以,我們可以存儲在Servlet會話屬性的bean並訪問相同的JSF應用程序在JSF數據表中顯示的數據。這可能嗎?我們如何在JSF應用程序中獲取不同應用程序的上下文(即來自servlet)。有沒有辦法做到這一點?
「不同的應用」 是很曖昧。你在談論1個WAR文件還是2個WAR文件?如果有兩個WAR文件,它們是否部署到相同的servletcontainer? – BalusC 2012-02-15 18:06:11
是的...這兩個應用程序有他們單獨的WAR文件。但部署在兩臺不同機器上的不同tomcat服務器上,並有兩個不同的容器。 JSF使用FacesContext和Servlet應用程序使用ServletContext – 2012-02-18 07:21:33