質問編集履歴

3

タイトルを分かりやすく修正

2023/07/18 23:13

投稿

hya1205
hya1205

スコア6

test CHANGED
@@ -1 +1 @@
1
- Java Spring Batchを使ってstep間でデータのやり取りを行いたいが、putで設定はできるがgetで取得できずに困っております。
1
+ データのやり取りを行いたいが、getで取得できない
test CHANGED
File without changes

2

内容を簡潔に記載し、わかりやすくした。

2023/07/18 23:12

投稿

hya1205
hya1205

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,57 +1,19 @@
1
1
  ### 実現したいこと
2
2
 
3
- Java Spring Batchを使ってstep間でデータのやり取りを行いたい。
3
+ データのやり取りを行いたい。
4
4
  ### 前提
5
5
 
6
- ネットで調査した限りでは、**ExecutionContext**を使用して実現が可能という記事を見ます。タスクレットモデル、チャンクモデルで**ExecutionContext**を使用して**step間でデータのやり取り**ができればと考えております。
6
+ step間でデータのやり取りができればと考えております。
7
7
 
8
8
  ### 発生している問題・エラーメッセージ
9
- ExecutionContextのインスタンスを生成してputでキーと値を設定することは可能なことは確認したのですが、**次のstepでgetしてもputした値が入っていない状態**す。尚、同じstep内であればgetでますが、**やりたことは別stepでgetしたい**です
9
+ ExecutionContextのインスタンスを生成してgetできい。
10
- サンプルコード等頂けたら幸いです。
10
+
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```ここに言語名を入力
14
- // 1つ目のstepでputでキーと値を設定。設定はできていそう。
15
- @Component
16
- public class HelloFirst implements Tasklet {
17
- @Override
18
- public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext)
19
- throws Exception {
20
- System.out.println("Hello World First");
21
-
22
- // (1)
23
- chunkContext.getStepContext().getStepExecution().getExecutionContext()
24
- .put("promotion", "value1");
25
- // omitted.
26
-
27
- return RepeatStatus.FINISHED;
28
- }
29
- }
30
-
31
-
32
- // 2つ目のstepでgetで取得するもnullで取得されてしまう。
33
- @Component
34
- public class HelloSecond implements Tasklet {
35
- @Override
36
- public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext)
37
- throws Exception {
38
- System.out.println("Hello World Second");
39
- // (2)
40
- Object promotion = chunkContext.getStepContext().getStepExecutionContext()
41
- .get("promotion");
42
- // omitted.
43
- return RepeatStatus.FINISHED;
44
- }
45
- }
46
-
47
- ```
48
14
 
49
15
  ### 試したこと
50
-
51
- デバッガで追ってみたところ、putで値は設定できていそうだが、getで取得できない。step間をまたぐとNGでまたがなければ(同じstep内)getで取得できる。
52
16
 
53
17
  ### 補足情報(FW/ツールのバージョンなど)
54
18
 
55
19
  VSCodeを使用してます。Javaはversion17を使ってます。
56
- その他、2023/7/15時点での最新を使ってます。
57
-

1

発生している問題・エラーメッセージに追記しました。

2023/07/15 07:30

投稿

hya1205
hya1205

スコア6

test CHANGED
File without changes
test CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  ### 発生している問題・エラーメッセージ
9
9
  ExecutionContextのインスタンスを生成してputでキーと値を設定することは可能なことは確認したのですが、**次のstepでgetしてもputした値が入っていない状態**です。尚、同じstep内であればgetできますが、**やりたいことは別stepでgetしたい**です。
10
-
10
+ サンプルコード等頂けたら幸いです。
11
11
  ### 該当のソースコード
12
12
 
13
13
  ```ここに言語名を入力