要求是:需要在点击链接时启动后台进程。
<h:commandLink action="#{myBean.generateReport}">
<h:outputText value="Generate Report"/>
</h:commandLink>
线程中的- run(),
@Override
public void run()
{
createReport();
}
并在createReport方法中
public String createReport()
{
DatabaseAPI data = new DatabaseAPI();
MyUser ip_user = (MyUser) sesFactory.get().getAttribute(ProjConstants.SESSION_USER_VAR);
try
{
data.generateReportFunction( .. arguments ..)
}
catch (Exception e)
{
e.printStackTrace();
return "failure";
}
return "success";
}
在createReport方法中,线程在以下行停止:
DatabaseAPI data = new DatabaseAPI();
如果我评论该行,那么它会在此行停止:
MyUser ip_user = (MyUser) sesFactory.get().getAttribute(ProjConstants.SESSION_USER_VAR);
我的托管bean范围是:request。
即使我评论如下的一些行:仍然线程停止
public String createReport()
{
DatabaseAPI data = new DatabaseAPI();
//MyUser ip_user = (MyUser) sesFactory.get().getAttribute(ProjConstants.SESSION_USER_VAR);
try
{
// data.generateReportFunction( .. arguments ..)
}
catch (Exception e)
{
e.printStackTrace();
return "failure";
}
return "success";
}