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

Spring Java Discussion :

[Jhipster] repository null


Sujet :

Spring Java

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut [Jhipster] repository null
    Bonjour,

    je débute sur Spring / Jhipster. J'ai un projet généré par Jhipster auquel je veux ajouter un service. J'ai toujours une nullPointerException sur projetRepository.findAll() dans le service. Je suppose qu'il me manque une annotation ou un truc d'initialisation mais je n'arrive pas à trouver quoi.
    Le service sera lancé par un batch tous les jours à 08h00 mais pour le tester je l'ai mis dans le main de l'application (CricApp). Est-ce bon ?

    ClearQuestService (généré sauf traitement*)
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    @Service
    @Transactional
    public class ClearQuestService {
     
        private final Logger log = LoggerFactory.getLogger(ClearQuestService.class);
     
        private final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
     
        @Inject
        private ProjetRepository projetRepository;
    ...
        @Scheduled(cron = "0 0 8 * * *")
        public void traitementBatch() {
            log.info("Lancement cron {}", dateFormat.format(new Date()));
            Document doc = recuperationFicherXml();
            FileXml fichierXml = new FileXml(doc);
    	traitementFicherXml(fichierXml);
        }
     
        private void traitementFicherXml(FileXml fichierXml) {
            DataIndicProjet donneesProjet = new DataIndicProjet();
            List<Projet> listeProjets = projetRepository.findAll();
    ...
        }
    }
    ProjetRepository (généré sauf findOneByCodePrt)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @SuppressWarnings("unused")
    public interface ProjetRepository extends JpaRepository<Projet,Long> {
     
        Optional<Projet> findOneByCodePrt(String codePrt);
     
    }
    CricApp (généré sauf l'appel au service)
    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
    16
    17
    18
    @ComponentScan
    @EnableAutoConfiguration(exclude = { MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class })
    @EnableConfigurationProperties({ JHipsterProperties.class, LiquibaseProperties.class })
    public class CricApp {
     
        private static final Logger log = LoggerFactory.getLogger(CricApp.class);
     
        @Inject
        private Environment env;
    ...
        public static void main(String[] args) throws UnknownHostException {
            SpringApplication app = new SpringApplication(CricApp.class);
            DefaultProfileUtil.addDefaultProfile(app);
            Environment env = app.run(args).getEnvironment();
            ClearQuestService clearQuestService = new ClearQuestService();
            clearQuestService.traitementBatch();
        }
    }
    Christophe

    Pensez à mettre quand c'est le cas.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @ComponentScan // il faut faire attention l'emplacement de la classe si tu ne spécifies pas les packages à scanner 
    @EnableAutoConfiguration(exclude = { MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class })
    @EnableConfigurationProperties({ JHipsterProperties.class, LiquibaseProperties.class })
    @EnableJpaRepositories("package.des.repositories") // ajoute cet annotation
    public class CricApp {
    Sinon, tu peux mettre le log en entier ?

    A+.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Voici le log.
    INFO 8288 --- [ restartedMain] c.s.cric.service.ClearQuestService : Traitement ficher XML (debut) 10:27:54
    Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
    Caused by: java.lang.NullPointerException
    at xxx.cric.service.ClearQuestService.traitementFicherXml(ClearQuestService.java:124)
    at xxx.cric.service.ClearQuestService.traitementBatch(ClearQuestService.java:64)
    at xxx.cric.CricApp.main(CricApp.java:76)
    ... 5 more
    J'ai ajouté "@EnableJpaRepositories("xxx.cric.repository")" mais l'erreur reste.

    Edition :
    CricApp se trouve à la racine de xxx.cric.
    Christophe

    Pensez à mettre quand c'est le cas.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    En ne passant pas par le main (static) ça semble fonctionner.
    Le "static" semble empêcher l'instantiation de se faire.
    Christophe

    Pensez à mettre quand c'est le cas.

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClearQuestService clearQuestService = new ClearQuestService();
    C'est ça le problème, tu l'instancies manuellement, du coup les dépendances ne sont pas injectées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        @Inject
        private Environment env;
        @Inject
        private ClearQuestService clearQuestService;
    ...
        public static void main(String[] args) throws UnknownHostException {
            SpringApplication app = new SpringApplication(CricApp.class);
            DefaultProfileUtil.addDefaultProfile(app);
            Environment env = app.run(args).getEnvironment();
            clearQuestService.traitementBatch();
        }
    A+.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    J'avais essayé mais il faut le mettre en static (à cause du main qui est static) et ça me donne la même erreur.
    Christophe

    Pensez à mettre quand c'est le cas.

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Ah oui, j'ai pas remarqué, désolé pour l'étourderie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static void main(String[] args) throws UnknownHostException {
            SpringApplication app = new SpringApplication(CricApp.class);
            DefaultProfileUtil.addDefaultProfile(app);
            Environment env = app.run(args).getEnvironment();
            ClearQuestService clearQuestService = app.getBean(ClearQuestService.class);
        	clearQuestService.traitementBatch();
    }
    A+.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Merci. Je dois travailler sur autre chose mais je teste ça dès que possible.
    Christophe

    Pensez à mettre quand c'est le cas.

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

Discussions similaires

  1. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  2. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23
  3. Tester si un champ est NULL
    Par titititi007 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/06/2003, 10h17
  4. [VB6] [BDD] Recordset et champ égal à Null
    Par Gr|ppen dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/03/2003, 10h00
  5. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07

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