IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Utiliser un contexte dans une routine


Sujet :

Développement de jobs

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut Utiliser un contexte dans une routine
    Bonjour à tous,

    Je souhaiterais savoir s'il est possible d'utiliser les contextes dans les routines java?

    En fait, j'ai une interface de connexion qui est utilisée par toutes les routines.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    // template routine Java
    package routines;
     
    public interface InterfaceConnection 
    {
    	static String host = "localhost";
    	static String port ="3306";
    	static String db="myDatabase";
    	static String user="root";
    	static String pw="";
    	static String url_tMysqlInput_1="jdbc:mysql://" + host + ":"
    	+ port+ "/" + db;	
     
    }
    J'aimerais récupérer ces données directement via le contexte pour obtenir quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    static String host = context.getProperty("Server");
    ...
    Malheureusement, j'ai l'erreur "context ne peut pas être résolu."

    Merci pour votre aide

  2. #2
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Par défaut
    Bonjour,

    Je ne comprends pas bien pourquoi tu crées une routine pour une connexion à une BDD sachant que Talend gère déjà cela avec des connexions [BDD]connection. Et en les ajoutant à d'autres composants on arrive à tout faire. Néanmoins cela ne nous regarde pas et je vais essayer de répondre à ta question.

    Tu essayes d'accéder à la variable "context" défini dans ton job mais cette variable n'est pas appelé de manière static dans ta routine du coup... ta routine ne connait pas cette variable car ça visibilité n'est pas bonne.

    Le mieux serait de passer en paramètre de ta routine la variable de contexte...

    Sinon tu peux toujours utiliser ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Properties p = new Properties(); 
        	java.io.InputStream inContext = loadContact.class.getClassLoader().getResourceAsStream("developpez/MonJob_0_1/contexts/Default.properties");
        	try {
    			p.load(inContext);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return p.getProperty("host");
    Le problème avec ce code c'est qu'il charge le fichier de context indépendement du nom du job et du fichier de properties... donc ce code fonctionnera pour le job nommé MonJob, pour la version 0.1 et pour le contexte par défaut...

    Encore une fois le mieux serait de passer en paramètre de ta routine la propriété voulue et de la charger dans la variable Host par la suite... enfin peut être qu'il y a une autre méthode mais comme une routine est static...

    PS : je t'ai mis en pièce jointe mon job de test avec le code précédent. Si tu veux le tester il faut modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    developpez/MonJob_0_1/contexts/Default.properties
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [tonNomDeProjetTalend]/[TonJob]_[version_X]_[version_Y]/contexts/[groupe_context].properties
    Fichiers attachés Fichiers attachés
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut
    Bien en fait je reprends le travail de quelqu'un et il me faudrait beaucoup de temps pour modifier tout ça donc je m'adapte.

    En tout cas merci pour ta solution je l'essaierai mais j'avoue que c'est vraiment pas ce qu'il y a de mieux.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. parametre de context dans une routine
    Par slimlus dans le forum Développement de jobs
    Réponses: 9
    Dernier message: 15/10/2010, 13h16
  2. Utilisation de Getdate dans une fonction
    Par BaronSamdi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/11/2004, 11h12
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 19h38
  4. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 16h27
  5. Réponses: 3
    Dernier message: 11/03/2004, 11h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo