私は2つのWARアプリケーションを持っており、それらの間の通信モードはサーブレットを介しています。
私のアプリケーション(WAR A)は、別のWAR(たとえば、WAR B)のサーブレットのURLを使用して子ウィンドウを開きます。
サーブレット(WAR B内)はデータを処理し、処理されたデータを元のアプリケーションのサーブレット(つまり、WAR Aのサーブレット)に送り返す必要があります。
ただし、このプロセスは無限ループで終了し、WAR-Aから送信されたURLパラメータもnullになります。
コードスニペットは次のとおりです。
次のスクリプトは、WAR-BのサーブレットのURLを含む子ウィンドウを開き、いくつかのURLパラメータも渡します。
function invokePlugin(invokeURL, custValJSON, meaCompPartJSON) {
window.open(invokeURL + '?custValJSON=' + custValJSON,'');
}
以下は、URLパラメータを抽出してデータを処理し、リクエストをWAR-Aのサーブレットに送り返すWAR-Bのサーブレットコードです...
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);
}
}
誰かがこれについて考えを持っていますか?
よろしく、
サティア