Ich habe gerade angefangen zu lernen JSR-352 und machte es durch eine Ansicht Tutorials. Aber ich habe ein Problem mit der Injektion von Batch-Eigenschaften: Der wichtige Teil meines „myJob.xml“ ist diesJBatch: BatchProperty-Injektion auf Wildfly 9
<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<properties>
<property name="name" value="MyName"/>
</properties>
Mit dem folgenden Code ist es kein Problem ist, die Eigenschaft in einem Batchlet oder Chunk zu erhalten :
@Inject
JobContext batchContext;
@Override
public String process() throws Exception {
Thread.sleep(100);
String name = batchContext.getProperties().getProperty("name");
Aber in verschiedenen Tutorials, die ich auch einen einfacheren Weg, dies zu tun mit
@Inject
@BatchProperty(name="name")
String name;
Aber der Wert des Namen ist immer null finden. Also die Injektion funktioniert nicht. Ist das ein Fehler von mir oder ist das ein Problem mit Wildfly 9.0.1, auf dem ich die Batch-Anwendung bereitgestellt habe?
Versuchen Sie, den Namen in der gleichen Klasse zu injizieren, injizieren Sie den 'JobContext'? –
Ja. Es ist dieselbe Batchlet-Klasse. – Veilchen4ever
Es sollte definitiv funktionieren. Haben Sie in Ihrer Bereitstellung eine 'beans.xml'? –