2016-04-21 7 views
0

Bitte wie übermittele ich einen Dateinamen als Job-Parameter während der Ausführung einer Feder Batch-Job mit JSON API?übergeben Sie einen Dateinamen als Job-Parameter während der Ausführung eines Spring-Batch-Job mit JSON API

Map<String, String> map = new HashMap<String, String>(); 

      map.put("jobparameters", "filename=" + UPLOAD_LOCATION + uploadedFile.getFileName() + ".csv"); 

      RestTemplate rstTpl = new RestTemplate(); 

      String result = rstTpl.postForObject(url, map, String.class); 

und Zugriff auf die Datei von meinem Job zB

<bean id="edivJobFile" class="org.springframework.core.io.FileSystemResource" 
    scope="step"> 
    <constructor-arg value="#{jobParameters[filename]}" /> 
</bean> 
+0

Können Sie bitte erklären und Code für den Teil zeigen, wo die JSON API Parameter empfängt und einen Job startet? –

Antwort

0

ich später, dass der Frühling Batch JSON api für POST entdeckt (das startet einen Job) können Parameter Job als POST-Request-Parameter übergeben werden (http://docs.spring.io/spring-batch-admin/reference/json.html) zB jobparameters = Dateiname = myfile.csv, Chargekode = 001

jobparameters = Dateiname = myfile.csv, Chargekode = 001

Also habe ich später:

MultiValueMap<String, String> mvm = new LinkedMultiValueMap<String, String>(); 

String fileNameParam = "filename=" + UPLOAD_LOCATION + "/" + uploadedFile.getFileName(); 

String batchCodeParaam = "batchCode=" + uploadedFile.getBatchCode(); 
String companyCodeParam = "companyCode=" + companyCode; 


mvm.add("jobParameters", fileNameParam + "," + batchCodeParaam + "," + companyCodeParam); 

RestTemplate rstTpl = new RestTemplate(); 

String result = rstTpl.postForObject(url, mvm, String.class); 

Und es hat funktioniert. @Michael Pralow, der Frühling API ist von Frühjahr Batch-Admin als Option für die Überwachung und den Start von Arbeitsplätzen ausgesetzt. Danke