Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

dohvatanje web konteksta iz Quartz joba

[es] :: Java :: dohvatanje web konteksta iz Quartz joba

[ Pregleda: 1841 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

DeYo
Dejan Vukmirovic
developer @ Mogul
Pozarevac/Bgd/Stockholm

Član broj: 36771
Poruke: 85
*.dynamic.sbb.co.yu.

Sajt: www.linkedin.com/in/dejan..


Profil

icon dohvatanje web konteksta iz Quartz joba28.04.2007. u 10:24 - pre 207 meseci
Imam web aplikaciju u kojoj za kontrolu i pokretaje scheduled procesa koristim Quartz paket (www.opensymphony.com/quartz).

Kreiranje jobova, njihova organizacija i samo pokretanje nisu problem.
Problem je konekcija sa bazom, u ovom slucaju konkretno Oracle 9i ali to ne menja sustinu.
Quatz jobovi se izvrsavaju van web kontejnera i zato nemaju mogucnost direktnog pristupa web kontekstu i JNDI referenci koja je tamo definisana (data source binding).

Privremeno sam resio tako sto sam u inicajlni Quartz servlet, koji ucitavam sa pokretanjem web aplikacije, dodao parametre za dbUsername, dbPassword i dbUrl (definisano unutar web.xml). Ti parametri se iz kreiranog schedulera prosledjuju jobovima pa pristup bazi obavljam direktnim ucitavanjem:
Code:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection connection = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);


Medjutim, zbog postavke problema, treba mi mogucnost da dohvatim JNDI.
Nesto nalik ovome:
Code:
ctx = new javax.naming.InitialContext();
Context envCtx = (Context) ctx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("my_ds");
dc = ds.getConnection();


Da li je to nekako moguce?

Negde sam nasao tip da se u servletu izvuku potrebni parametri web kontexta i da se to zatim prosledi jobovima, unutar kojih bi se zatim vrsio restore (!?) ili kreiranje novog konteksta. Medjutim nikakav primer implemetacije nisam pronasao.

Ako ima ljudi iskusnih sa koriscenjem Quartz paketa svaka pomoc bi mi dobro dosla. Hvala unapred.
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl-2.sezampro.yu.



+13 Profil

icon Re: dohvatanje web konteksta iz Quartz joba28.04.2007. u 14:00 - pre 207 meseci
Jel si pokusao sa http://java.sun.com/j2se/1.5.0...ialContext(java.util.Hashtable) ?
 
Odgovor na temu

DeYo
Dejan Vukmirovic
developer @ Mogul
Pozarevac/Bgd/Stockholm

Član broj: 36771
Poruke: 85
*.dynamic.sbb.co.yu.

Sajt: www.linkedin.com/in/dejan..


Profil

icon Re: dohvatanje web konteksta iz Quartz joba28.04.2007. u 14:28 - pre 207 meseci
Hm...

Pa problem i jeste u tome sto ja kada kreiram InitalContext (vidi 2. primer koda) ne mogu da dohvatim postojeci JNDI. Interesuje me sta i kako od properties web konteksta da dohvatim u inicijalanom servletu i da prosledim dalje Quartz jobovima kako bi dohvatili JNDI.

otprilike ovo je greska koju dobijam (paste sa drugog sajta, trenutno nisam pri radnom compu):
Code:
org.quartz.SchedulerConfigException: Failure occured during job
recovery. [See nested exception: org.quartz.JobPersistenceException:
Failed to obtain DB connection from data source 'jndi:jdbc/personnel':
java.sql.SQLException: Could not retrieve datasource via JNDI url
'jdbc/personnel' javax.naming.NameNotFoundException: Name jdbc is not
bound in this Context [See nested exception: java.sql.SQLException:
Could not retrieve datasource via JNDI url 'jdbc/personnel'
javax.naming.NameNotFoundException: Name jdbc is not bound in this
Context]]


Mozda se ja i vrtim u krug sa ovom pricom, pa ne vidim nesto sto je ocigledno.

 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl-2.sezampro.yu.



+13 Profil

icon Re: dohvatanje web konteksta iz Quartz joba28.04.2007. u 15:41 - pre 207 meseci
Pa vidim, ali ja ti preporucujem da koristis ovaj konstruktor:

Code:

public InitialContext(Hashtable<?,?> environment) throws NamingException


Evo primera:

Code:

package paket;

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class Client {
    public static void main(String [] args) {
        try {
            final Context context = getInitialContext();
            NekiInterfejs ni = (NekiInterfejs)context.lookup("NekiInterfejs");
            // Radi nesto sa ni
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    private static Context getInitialContext() throws NamingException {
        Hashtable env = new Hashtable();
        //  Standalone OC4J connection details
        env.put( Context.INITIAL_CONTEXT_FACTORY, "oracle.j2ee.rmi.RMIInitialContextFactory" );
        env.put( Context.SECURITY_PRINCIPAL, "oc4jadmin" );
        env.put( Context.SECURITY_CREDENTIALS, "lozinka" );
        env.put(Context.PROVIDER_URL, "ormi://host:23791/Aplikacija");
        return new InitialContext( env );
    }
}
 
Odgovor na temu

DeYo
Dejan Vukmirovic
developer @ Mogul
Pozarevac/Bgd/Stockholm

Član broj: 36771
Poruke: 85
*.dynamic.sbb.co.yu.

Sajt: www.linkedin.com/in/dejan..


Profil

icon Re: dohvatanje web konteksta iz Quartz joba28.04.2007. u 15:54 - pre 207 meseci
Hvala, Vanja.

Pogledacu u Ponedeljak-Utorak sta mogu da uradim na osnovu ovog pa cu javiti.
 
Odgovor na temu

[es] :: Java :: dohvatanje web konteksta iz Quartz joba

[ Pregleda: 1841 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.