У меня есть два приложения WAR, и связь между ними осуществляется через сервлеты.
Мое приложение (WAR A) открывает дочернее окно с URL-адресом сервлета в другой WAR (скажем, WAR B).
Сервлет (в WAR B) обрабатывает данные и должен отправить обработанные данные обратно в сервлет исходного приложения (т. Е. Сервлет WAR A).
Но этот процесс заканчивается бесконечным циклом, а также параметры URL, отправленные из WAR-A, равны нулю.
Вот фрагмент кода:
Приведенный ниже скрипт открывает дочернее окно с URL сервлета в WAR-B, также передавая некоторые параметры URL.
function invokePlugin(invokeURL, custValJSON, meaCompPartJSON) {
window.open(invokeURL + '?custValJSON=' + custValJSON,'');
}
Ниже приведен код сервлета в WAR-B, который извлекает параметры URL, обрабатывает данные и снова отправляет запрос обратно сервлету WAR-A ...
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);
}
}
У кого-нибудь есть идеи по этому поводу?
С уважением,
Satya