web-dev-qa-db-fra.com

Spring Boot GS: ComponentScan et ClassNotFoundException pour ConnectionFactory

Je joue sur le guide de démarrage de Spring Boot mais la configuration automatique échoue et je reçois:

 Java.lang.ClassNotFoundException: javax.jms.ConnectionFactory

Il semble que cela soit dû à l'emplacement de la classe Application. Où devrait-il être situé? Au niveau du package de niveau supérieur (src/main/Java) ou dans un package spécifique?

23
Tyler

Votre classe Application doit être placée dans un package spécifique et non dans le package par défaut (de niveau supérieur). Par exemple, placez-le dans com.example et placez tout votre code d'application dans ce package ou dans des sous-packages tels que com.example.foo et com.example.bar.

Placer votre classe Application dans le package par défaut, c’est-à-dire directement dans src/main/Java, n’est pas une bonne idée et cela entraînera presque certainement un échec du démarrage de votre application. Si vous le faites, vous devriez voir cet avertissement:

** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.
77
Andy Wilkinson

Ne mettez pas la classe d'application de démarrage dans le package par défaut. Cela résoudra le problème.

Code de travail:

package com.spring.boot.app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);         

    }
}
4

Vous avez besoin que la classe principale soit dans un paquet. Parce que l'annotation d'amorçage Spring, @SpringBootApplication recherche un package à analyser lors du lancement de l'application.

Assurez-vous donc qu’il existe une instruction de package en haut de votre fichier de classe principal. C'est tout.

0
Mahaveer Jangir

J'avais le même problème, Bientôt, je réalisai que je n'avais pas inclus ma méthode PRINCIPALE dans le package Après l'inclusion de main dans le package, le démarrage à ressort s'est déroulé sans problèmes.

Exemple de programme (Basic) - 

package springbootquickstart;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class application {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SpringApplication.run(application.class, args);

    }

}
0
Golokesh Patra