GWT+GAE アプリに 2 つのサーブレットがあります。1 つは、クライアントからのすべての呼び出しを処理する「MyServlet extends RemoteServiceServlet」です。もう 1 つは、「Upload extends HTTPServlet」で、ここで説明されているようにクライアントから投稿されたファイルを処理します。
Upload サーブレットから、MyServlet に設定されたオブジェクトにアクセスするにはどうすればよいですか?
//
//MyServlet extends RemoteServiceServlet
//
public User login(String username, String password) {
User user = null;
PersistenceManager pm = PMF.get().getPersistenceManager();
Query query = pm.newQuery(User.class, "username == '" + username + "' && password == '" + password + "'");
List<User> users = (List<User>) query.execute();
if (!users.isEmpty()) {
user = new User();
User userDB = users.get(0);
user.setUsername(userDB.getUsername());
getThreadLocalRequest().getSession().setAttribute("user", user);
}
pm.close();
return user;
}
public void doSomething() {
//Never returns null. This is good.
User user = getThreadLocalRequest().getSession().getAttribute("user");
....
}
//
//Upload extends HTTPServlet
//
public void doPost(HttpServletRequest req, HttpServletResponse res) {
// Always returns null. WHY?!?
req.getSession().getAttribute("user");
....
}