Java 在完成之前,在Struts2中显示长流程的即时搜索结果

Java 在完成之前,在Struts2中显示长流程的即时搜索结果,java,performance,jquery,struts2,Java,Performance,Jquery,Struts2,我正在用Struts2编写一个程序,它从URL列表中解析一些xml,并将bean列表存储在HttpSession中。这是一个长期运行的过程,因为它必须从url下载xml,解析它,然后创建bean。我希望以这样的方式设计此任务,以便当它从客户端收到请求时,它将开始解析并将结果存储在会话中。当它完成对一些xml的解析时,它会从java通知页面或Struts,以便在完成对url其余部分的解析之前显示一些结果。我已经在不同的线程中使用了这个解析。但它也有风险,因为web为每个不同的客户端请求管理不同的线

我正在用Struts2编写一个程序,它从URL列表中解析一些xml,并将bean列表存储在HttpSession中。这是一个长期运行的过程,因为它必须从url下载xml,解析它,然后创建bean。我希望以这样的方式设计此任务,以便当它从客户端收到请求时,它将开始解析并将结果存储在会话中。当它完成对一些xml的解析时,它会从java通知页面或Struts,以便在完成对url其余部分的解析之前显示一些结果。我已经在不同的线程中使用了这个解析。但它也有风险,因为web为每个不同的客户端请求管理不同的线程池,并且有内存泄漏的可能性。我已经看过了 ,但在解析过程中不可能显示某些结果bean。
任何人都可以说出更好的方法或更好的解决方案

我解决了我的问题。首先,创建一个拦截器项目并扩展ExecuteAndWaitInterceptor.java,而不是拦截器接口,并重写doIntercept方法。只是我们必须使用in-doIntercept方法。此方法主要创建一个后台线程。如果你控制了这个拦截器,那么我们就不需要等待不确定的延迟。若我们控制这个机制,那个么当一个bean在长时间的进程完成之前准备好显示时,我们就可以调用中间页面。所有的控制权都在我手中,当它应该被调用的时候。我们不需要使用delay和interval delay,因为在这个延迟之后,任何bean都可能没有准备好显示

正在从XML创建bean。。。你确定有那么长吗?是的,很长,但不太长。有时,从web下载15个大型xml后,解析它们需要三分钟以上的时间。我是否可以通过循环或其他方式来管理解析机制,以便在解析一个xml后,可以立即显示结果,而不会中断正在完成的所有解析过程。