JSF 1.2中的线程创建

时间:2013-08-06 10:31:54

标签: jsf jsf-1.2

要求是:需要在点击链接时启动后台进程。

<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";
    }

0 个答案:

没有答案