0

GAE に固有の問題があります。以下で説明している問題は、コードを GAE にデプロイしたが、ローカルで正常に動作している場合にのみ発生することに注意してください...みんなを助けてください....

次のように、セッション属性に List オブジェクトを設定し、リクエストを JSP に転送するサーブレット コードがあります。

        HttpSession session=request.getSession();
        session.setAttribute("msgListS", msgList);
        request.getRequestDispatcher("/WEB-INF/jsp/downloadpdf.jsp").forward(request, response);

JSPで....リストを取得してそのサイズを出力し、リンクをクリックすると別のサーブレットを呼び出します。JSP コードは次のとおりです。

        List<Message> msgList=(List<Message>)session.getAttribute("msgListS");
        out.println("The total messages are : "+msgList.size());
        session.setAttribute("msgListS", msgList);  

最後のサーブレットで List オブジェクトを再度取得していますが、ここではサイズがリストの実際のサイズとは異なります。jsp では正しく表示されていましたが、このサーブレットではサイズが 1 として表示されています。助けてください....サーブレット コード:

       HttpSession session=request.getSession(false);
       List<Message> msgList=(List<Message>)session.getAttribute("msgListS");
       out.println("The total messages are : "+msgList.size());


    On local machine it is working absolutely fine but GAE has above problem :(
4

1 に答える 1

1

セッションを正しく取得していますか? 私の理解では、次のように取得する必要があります。

this.getThreadLocalRequest().getSession();

それが私がしていることであり、推奨されていることGoogle AppEngine セッションの例

ここでもさらに議論があります

ThreadLocal 変数はいつ、どのように使用すればよいですか?

これは、潜在的な欠点 (メモリ リーク) を示しています...参考のために言及していますが、それが当てはまるかどうかはわかりません。

于 2012-07-27T22:31:08.943 に答える