Webアプリで、長いプロセスに対して非同期スレッドを実行し、クライアントに進行状況を知らせたいと思います。このために、私はこの抽象クラスを使用することを考えました:
public abstract class ThreadProvider implements Runnable{
protected Thread thread;
public boolean create() throws SystemException{
if(thread!=null && thread.isAlive()) throw new SystemException("Il processo è già in esecuzione");
thread = new Thread(this);
thread.start();
return true;
}
}
そしてこれは私の実装です:
@Service @Transactional
public class ChiusuraProvider extends ThreadProvider {
private static Logger gdf = Logger.getLogger("gdf");
private static Logger log = Logger.getLogger(ChiusuraProvider.class);
protected Dao dao;
protected CinetelProvider cinetelProvider;
@Override
public void run() {...}
}
すべてが機能します:スレッドが開始し、自動配線が機能しているようです...しかし、Hibernatはセッションを見つけられませんでした(おそらくスレッドを変更したため)...これを解決するにはどうすればよいですか?
ありがとう