私はsturts2 webapplicationを開発しています。ユーザー名とパスワードのフィールドを持つログインページを持っています。ユーザーが値を含むフォームを送信するとすぐに、ログインを検証しています。ユーザーが有効なユーザー名とパスワードを提供すると、ホームページにリダイレクトされます。ホームページをリダイレクトしているときに、将来使用するためにセッションにデータを設定するスレッドを呼び出す必要があります。これを行う方法 ?
私がしたことは
import com.opensymphony.xwork2.ActionContext;
if( loginSuccess(userInfo) ) {
initializeDatas(); // calling thread after userInfo bean validated
// redirecting to home page
return HOME_PAGE;
}
runnable を実装する新しいクラスを追加しました。
class intilalizer implements Runnable {
@Override
public void run() {
try {
System.out.println("Started to set values ");
List<String> iphoneSdks = new ArrayList<String>();
List<String> iphoneOSSdks = IosSdkUtil.getMacSdks(MacSdkType.iphoneos);
List<String> simSdks = IosSdkUtil.getMacSdks(MacSdkType.iphonesimulator);
List<String> macSdks = IosSdkUtil.getMacSdks(MacSdkType.macosx);
iphoneSdks.addAll(iphoneOSSdks);
iphoneSdks.addAll(simSdks);
iphoneSdks.addAll(macSdks);
ActionContext context = ActionContext.getContext();
System.out.println("context ===> " + context); // here i am getting null value
String httpRequest = ServletActionContext.HTTP_REQUEST;
System.out.println("httpRequest =====> " + httpRequest);
Object object = context.get(httpRequest);
System.out.println(object);
HttpServletRequest req = (HttpServletRequest) object;
req.setAttribute(REQ_IPHONE_SDKS, iphoneSdks);
req.setAttribute(REQ_IPHONE_SIMULATOR_SDKS, simSdks);
System.out.println("Value initialized@@@@");
} catch (Exception e) {
e.printStackTrace();
}
}
}
私は得ています
java.lang.NullPointerException
at com.photon.phresco.framework.actions.intilalizer.run(Login.java:286)
at java.lang.Thread.run(Thread.java:680)
オンラインでこのエラーが発生しています。
ActionContext context = ActionContext.getContext();
System.out.println("context ===> " + context); // here i am getting null value