2016-03-21 11 views
1

instanziiert Wenn ich versuche, diesen Code auszuführen, um eine Batchjob auszuführen:JobOperator konnte nicht

JobOperator jo = BatchRuntime.getJobOperator(); 
Properties props = new Properties(); 
long jobId = jo.start("tweetimport", props); 

Ich halte einen Fehler. Als ich versuchte, es aus dem Servlet zu laufen habe ich diesen Fehler:

Severe: Could not instantiate service: com.ibm.jbatch.container.impl.BatchKernelImpl due to exception:java.lang.reflect.InvocationTargetException 
Warning: StandardWrapperValve[KwetterServlet]: Servlet.service() for servlet KwetterServlet threw exception 
java.util.ServiceConfigurationError: javax.batch.operations.JobOperator: Provider com.ibm.jbatch.container.api.impl.JobOperatorImpl could not be instantiated 

Wenn ich es von einer normalen Java-Klasse laufen bekomme ich diese errror:

mrt 21, 2016 10:19:08 AM javax.batch.runtime.BatchRuntime getJobOperator 
WARNING: The ServiceLoader was unable to find an implementation for JobOperator. Check classpath for META-INF/services/javax.batch.operations.JobOperator file. 
Exception in thread "main" java.lang.NullPointerException 

Ich habe diese tweetimport.xml Datei in andere Quellen> src/main/resources> META-INF.batch-Jobs

<job id="tweetimport" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0"> 
<properties> 
    <property name="input_file" value="/KwetterBackend/kwetter-input.json"/> 
</properties> 
<step id="process"> 
    <chunk item-count="100"> 
     <reader ref="TweetReader"></reader> 
     <processor ref="TweetProcessor"></processor> 
     <writer ref="TweetWriter"></writer> 
    </chunk> 
</step> 

ich kann nicht erklären, warum ich Ich bekomme diesen Fehler. The link to my project

+0

Haben Sie die erforderlichen Gläser auf dem Weg? –

+0

Ich habe java.batch-api zu den Abhängigkeiten hinzugefügt – Romy

Antwort

1

Ich fand schon die Antwort, ich dieses Programm zu starten hatte: Glassfish-4.1 \ bin \ asadmin, dann führen Sie diese Zeile:

set-batch-runtime-configuration --datasourcelookupname nameofyourJDBCdatasource 

Jetzt fein es funktioniert.