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?

1

There are 1 best solutions below

0
On

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.