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?
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.
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);
}
}
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.
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);
}
}