本帖最后由 xuyisen_1987 于 2011-07-16 11:34:09 编辑

解决方案 »

  1.   

     @javax.annotation.Resource(name="qarchiveBusiness")
        private QArchiveBusiness qabusiness;qarchiveBusiness和你的定义名称qabusiness不一样怎么注入
    你把名称改为 @javax.annotation.Resource(name="qarchiveBusiness")
        private QArchiveBusiness qarchiveBusiness;
      

  2.   

    大哥,不是看这个名字好不,只要name="qarchiveBusiness"和qarchiveBusiness类头上定义的一样就可以了,代码没问题,不加线程都没事,就是加了线程才这样的
      

  3.   

    QArchiveAction 对象要由spring代理生成,你在save方法里面直接new一个是没办法注入的。可以考虑通过spring的上下文对象来获取QArchiveAction
      

  4.   

    不用自己在代码里写这么一大堆东西,struts2里面已经有专门的解决办法了
    你可以下载struts的样例
    struts2-showcase这个工程里面longProcess3这个action完全就是你想要的
      

  5.   


            <action name="longProcess3" class="org.apache.struts2.showcase.wait.LongProcessAction">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="execAndWait">
                    <param name="delay">3000</param>
                    <param name="delaySleepInterval">1000</param>
                </interceptor-ref>
                <result name="wait">wait.jsp</result>
                <result name="success">complete.jsp</result>
            </action>只要这样配置就可以了 wait.jsp是等待时候的页面,complate.jsp是完成之后的页面
      

  6.   

    你可能疑惑execAndWait这个拦截器哪里来的啊?它是在struts-default.xml里面定义的
    <interceptor name="execAndWait" class="org.apache.struts2.interceptor.ExecuteAndWaitInterceptor"/>
      

  7.   

      Runnable r = new QArchiveAction();你这个action 是new的
    怎么给你注入