0

私の Web サービス クラス using(jersey)では、サーブレットと呼ばれる認証用の, ,オブジェクト@Contextを注入しました。HttpServletRequestHttpServletResponseServletContextValidateUser

@Path("/server")
public class WebServer { 
    @Context 
    private ServletContext context; 

    @Context
    private HttpServletRequest request;

    @Context
    private HttpServletResponse response;

    @POST
    @Path("/auth")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response createTrackInJSON(Track track) throws IOException, ServletException{ 
    ....
    context.getRequestDispatcher("/ValidateUser")include(request, response);
    ...
    }        
}

ValidateUser.java で、検証後に次のようにセッションを作成しました。

HttpSession session = request.getSession(true);

これまでのところ、すべて正常に動作していますが、電話すると:

HttpSession session = request.getSession(false);
session.invalidate();

ログアウト サーブレット セッションはnullです。安らかな Web サービスがステートレスであることは知っていますが、サーバー側でセッションを維持する必要があります。これを実現する方法はありますか? @PerSession注釈はどうですか?このシナリオで役に立ちますか?

4

1 に答える 1

0

セッションをデバッグするには、次の方法があります。

  • クライアントでセッション Cookie が作成されているのがわかりますか?
  • 複数のフロントエンドを使用していませんか? おそらく、セッションをデータベースに保持する必要がありますか?
  • セッションがタイムアウトした可能性はありますか? 検証呼び出しとログアウトの間に長い時間がかかる可能性はありますか?

@PerSession アノテーションはどうですか?このシナリオで役に立ちますか?

@PerSession同じ基礎となるセッション情報を使用します。それがあなたの問題を解決するとは思いません。

于 2013-03-25T16:59:15.497 に答える