前提・実現したいこと
Springフレームワークを使って、JavaのThreadクラスを使った並列処理を書いており、その中でセッションスコープに格納されている値を取得したいです。
発生している問題・エラーメッセージ
Exception in thread "Thread-6" java.lang.IllegalStateException: No thread-bound request found というエラーメッセージが出力され、調べたりしたのですが解決に至りませんでした。
該当のソースコード
サービスクラス
java
1@Service 2public class SendMailService extends Thread{ 3 public void run() { 4 Integer userId = (Integer)session.getAttribute("userId"); 5 List<Order> order = orderService.getLatestOrderList(userId); 6 SimpleMailMessage msg = new SimpleMailMessage(); 7 //以下処理が続きますが、ここでは割愛します 8 } 9}
コントローラクラス
Java
1@Controller 2public String order(@Validated OrderForm form, BindingResult result, Model model) { 3 4 //ここより上はその他の処理を記述しているので割愛します 5 sendMailService.start(); 6 return "redirect:/orderFinished"; 7}
補足情報(FW/ツールのバージョンなど)
mainのクラスでThreadクラスのstartメソッドを使って呼び出すと、sessionスコープの値を取得する処理の部分で止まり、前述のメッセージが出力されます。
並列処理についての学習を始めたばかりなので、まだ理解が浅いと思われますが、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー