Joomla レイアウト内から実行したい GWT アプリケーションがあります。コンセプトはうまく機能しているようで、アプリケーションは正しくロードされます。Joomla は iFrame を使用してこれを実現し、GWT アプリケーションを開始する URL を送信するだけです。
私が抱えている問題は、URL のパラメーターとして渡す Joomla からの特定の情報が必要なことです。GWT アプリケーションは HTML ページから起動するため、これらのパラメーターにアクセスする方法がありません。代わりに、サーブレットへの要求を開始しています。これらのパラメーターを取得してセッションに保存し、 GWT アプリケーションの HTML ページ。
コンセプトはうまく機能します。パラメータを取得してマップに配置すると、そのマップが基本的な Bean に入り、次のコードを使用してセッション属性として Bean を保存します。
request.getSession().setAttribute("sessionBean", sessionBean);
次に、サーブレットは GWT HTML ページを提供します。これにより、アプリケーションがロードされ、最初に RPC 呼び出しが開始されます。私が抱えている問題は、その呼び出しを処理する RemoteServiceServlet にあります。次のコードで SessionBean を取得しようとしています。
SessionBean sessionBean = (SessionBean) this.getThreadLocalRequest().getSession().getAttribute("sessionBean");
null になり、よく見ると、実際には新しいセッションが作成されていることがわかります。これは、2 つのセッションの ID を比較することでわかります。それ以降の RPC 呼び出しはすべて最後のセッションにアクセスできますが、SessionBean を保存したセッションはなくなりました!
これはすべて 1 つのデプロイされた war ファイルであり、Cookie が有効になっており、開発モードと運用モードの両方でこのように動作します。
おそらく、セッションの処理方法を誤解していると思います! GWT RPC 呼び出しが新しいセッションを作成する理由について何か考えはありますか? または、これについて完全に間違っている場合、これらの必要なパラメーターをセッションに取得する方法は?
どんな助けやアイデアも大歓迎です!
前もって感謝します!
ザンデル