I want to add a quartz job scheduler on my project, but when I run the project there is an error like that, how do I get the quartz job scheduler to read my database.properties?
Thank you very much for your answer, Mr Igor, my problem is I already have a database.properties but when I run my project, the quartz job scheduler runs, and the controller job will connect to the database, an error appears like this even though I have also opened the connection
This is my database.properties :
development.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
development.username=xxxx
development.password=xxxx
development.url=jdbc:sqlserver://10.10.5.45;databaseName=xxxxxxxxxxxxx;
This is my quartz job class :
package app.controllers.api.prosesgaji;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.javalite.activejdbc.Base;
import org.javalite.common.Convert;
import org.javalite.http.Http;
import org.javalite.http.Post;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import app.controllers.api.pemeliharaandata.KomponenGajiPegawaiHitungGajiController;
import app.models.Mstpegawai;
import core.io.enums.HttpResponses;
public class QuartzJobProsesGaji implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
LocalDate localDate = LocalDate.now();
int bulan = localDate.getMonthValue();
int tgl = localDate.getDayOfMonth();
try {
String tglGaji = Convert.toString(localDate);
String nip = "";
String kddati1 = "";
String kddati2 = "";
int kdStapeg = 0;
String tmtStop = "";
int no = 1;
System.out.println("\nStart Create Gaji");
Base.open();
Base.openTransaction();
List<Map> dataPegawai = new ArrayList<>();
dataPegawai = Mstpegawai.getPegawaiQuartzTestBeberapaPegawai(tglGaji);
Mstpegawai mstPegawai = new Mstpegawai();
for (Map map : dataPegawai) {
System.out.println("\nPegawai ke = "+no);
nip = Convert.toString(map.get("nip"));
System.out.println(" - nip = "+nip);
kddati1 = Convert.toString(map.get("kddati1"));
System.out.println(" - kddati1 = "+kddati1);
kddati2 = Convert.toString(map.get("kddati2"));
System.out.println(" - kddati2 = "+kddati2);
kdStapeg = Convert.toInteger(map.get("kdstapeg"));
System.out.println(" - kdStapeg = "+kdStapeg);
tmtStop = Convert.toString(map.get("tmtstop"));
System.out.println(" - tmtStop = "+tmtStop);
KomponenGajiPegawaiHitungGajiController hitungGaji = new KomponenGajiPegawaiHitungGajiController();
hitungGaji.prosesGajiInduk(mstPegawai.fromMap(map), tglGaji);
no++;
}
Base.close();
System.out.println("\nDone Create Gaji\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
So, why Base.open() didnt work?
You need to familiarize yourself with the docs: http://javalite.io/database_configuration. Chances are you did not provide a config file http://javalite.io/database_configuration#property-file-configuration but are using a
DBConnectionFilter
, which has no idea where to connect.