3

RPC サービスの最初の呼び出し中にセッション情報を取得しようとしました。

public class MyServiceImpl extends RemoteServiceServlet implements
MyService {

    public MyServiceImpl() {
        HttpServletRequest req = getThreadLocalRequest();
        // req = null here
    }
}

クライアント側では、簡単な呼び出しを行います:

MyServiceAsync service = GWT.create(MyService.class);

最初の RPC 呼び出し中に HttpServletRequest を取得する代替ソリューションはありますか?

ありがとうございました。

4

1 に答える 1

1

getThreadLocalRequest()サーブレットの初期化時に一度だけ呼び出されるサーブレットのコンストラクターを呼び出しています。その時点で、リクエストはまだ利用できません。

processCall(String)RPC 呼び出しごとに呼び出されるメソッドをオーバーライドする必要があります。

public class MyServiceImpl extends RemoteServiceServlet implements MyService {

    @Override
    public String processCall( String payload ) {
        HttpServletRequest req = getThreadLocalRequest();
        HttpSession session = req.getSession();
    }
}
于 2012-08-26T23:27:59.167 に答える