我有两个 WAR 应用程序,它们之间的通信方式是通过 servlet。
我的应用程序(WAR A)打开一个子窗口,其中包含另一个 WAR(假设为 WAR B)中的 servlet 的 URL。
servlet(在 WAR B 中)处理数据并将处理后的数据发送回原始应用程序的 servlet(即 WAR A 的 servlet)。
但是这个过程以无限循环结束,并且从 WAR-A 发送的 URL 参数也为空。
这是代码片段:
下面的脚本打开一个子窗口,其中包含 WAR-B 中的 servlet 的 URL,也传递了一些 URL 参数。
function invokePlugin(invokeURL, custValJSON, meaCompPartJSON) {
window.open(invokeURL + '?custValJSON=' + custValJSON,'');
}
下面是 WAR-B 中的 servlet 代码,它提取 URL 参数并处理数据,然后再次将请求发送回 WAR-A 的 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);
}
}
有人对此有想法吗?
问候,
萨提亚