我有兩個WAR應用程序,它們之間的通信模式是通過servlet。我的應用程序(WAR A)用另一個WAR中的servlet的URL打開一個子窗口(讓我們說WAR B)。RequestDispatcher以無限循環結尾
servlet(在WAR B中)處理數據並應將處理後的數據發送回原始應用程序的servlet(即WAR A的servlet)。
但是,此過程以無限循環結束,並且WAR-A發送的URL參數也爲空。
這裏是代碼片段:
下面的腳本將打開的servlet的戰爭-B還通過一些URL參數的URL子窗口。
function invokePlugin(invokeURL, custValJSON, meaCompPartJSON) {
window.open(invokeURL + '?custValJSON=' + custValJSON,'');
}
下面是WAR-B,提取的URL參數和處理數據,然後重新發送請求回WAR-A的Servlet servlet代碼...
private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String custValJSON = request.getParameter("custValJSON");
System.out.println("custValJSON : " + custValJSON);
CustomValues custVal = gson.fromJson(custValJSON, CustomValues.class);
if(custVal != null) {
System.out.println("Cust val details : " + custVal.getName());
custVal.setValue("Satya");
}
String destination = "/testPlannerPluginResult";
RequestDispatcher reqDispatch = request.getRequestDispatcher(destination);
request.setAttribute("custValJSON", gson.toJson(custVal));
if(reqDispatch != null) {
reqDispatch.forward(request, response);
}
}
有誰有想法這個?
問候,
薩蒂亞
我定義web.xml的不好的風格。 web.xml的url-pattern爲'/ *',因此servlet被重複調用導致StackOverfow :) – Satya