8
votes

IllegalStateException - @ComponentsCanning d'un package Springframework

Je travaille dans le tutoriel suivant:

http: // printemps. io / guides / gs / rest-service / p>

J'étais initialement capable de faire fonctionner le code correctement (exécutez le didacticiel fini, envoyez un message HTTP et obtenez la réponse correcte) et obtenez-en avec succès) étendre dessus. p>

Après avoir augmenté plus loin, j'ai rencontré l'exception suivante: p> xxx pré>

J'ai dépouillé le code vers le bas de ce qui est indiqué dans l'exemple , mais je ressens toujours l'exception. P>

Je pense que cela pourrait éventuellement être lié au problème suivant, bien qu'il soit marqué comme fermé: p>

https://github.com/spring-projects/spring-boot/issues/2050 p>

Je ne suis pas très expérimenté avec le printemps, je ne peux donc pas comprendre complètement ce qui est discuté. p>

Voici mes classes actuelles: p>

salutation.java: p> xxx pré >

salutationController: p> xxx pré>

application.java: p> xxx pré>

pom.xml: p>

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.aharrison</groupId>
<artifactId>SpringRestAPI</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.2.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.1.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.6.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>2.12.2</version>
    </dependency>
</dependencies>


2 commentaires

Vérifiez ce lien Ce document explique clairement comment configurer l'application de démarrage à ressort à l'aide de Maven.


Apparemment, cette question continue à obtenir du trafic. Honnêtement, je n'ai pas travaillé sur tout ce qui mène à cette question depuis des années. Je n'ai jamais accepté de réponse car je n'ai pas trouvé de solution; Faites-moi savoir si c'est une mauvaise forme. Bonne chance à tout le monde.


4 Réponses :


3
votes

Lorsque j'exécute le code que vous avez fourni, tout fonctionne bien. Le seul changement que je devais faire était dans le pom.xml code> où j'ai ajouté les éléments suivants: xxx pré>

ceci active l'ensemble de la démarrage em> Mécanisme et est nécessaire pour que vous puissiez démarrer l'application. P>

voir ci-dessous pour la sortie réussie de mon test de test: P>

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.2.0.RELEASE)

2014-12-27 17:41:12.472  INFO 4065 --- [           main] com.aharrison.hello.Application          : Starting Application on My-MacBook-Pro.local with PID 4065 (/Users/wassgren/test/target/test-classes started by wassgren in /Users/wassgren/test/test-di)
2014-12-27 17:41:12.506  INFO 4065 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4a668b6e: startup date [Sat Dec 27 17:41:12 CET 2014]; root of context hierarchy
2014-12-27 17:41:13.407  INFO 4065 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
2014-12-27 17:41:14.186  INFO 4065 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration' of type [class org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2014-12-27 17:41:14.703  INFO 4065 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080/http
2014-12-27 17:41:15.047  INFO 4065 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2014-12-27 17:41:15.048  INFO 4065 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.0.15
2014-12-27 17:41:15.154  INFO 4065 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2014-12-27 17:41:15.154  INFO 4065 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2651 ms
2014-12-27 17:41:16.399  INFO 4065 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
2014-12-27 17:41:16.404  INFO 4065 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2014-12-27 17:41:16.404  INFO 4065 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'characterEncodingFilter' to: [/*]
2014-12-27 17:41:16.907  INFO 4065 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4a668b6e: startup date [Sat Dec 27 17:41:12 CET 2014]; root of context hierarchy
2014-12-27 17:41:16.979  INFO 4065 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/greeting],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public com.aharrison.hello.Greeting com.aharrison.hello.GreetingController.greeting(java.lang.String)
2014-12-27 17:41:16.981  INFO 4065 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2014-12-27 17:41:16.981  INFO 4065 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[text/html],custom=[]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest)
2014-12-27 17:41:17.013  INFO 4065 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2014-12-27 17:41:17.014  INFO 4065 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2014-12-27 17:41:17.059  INFO 4065 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2014-12-27 17:41:17.206  INFO 4065 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2014-12-27 17:41:17.292  INFO 4065 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080/http
2014-12-27 17:41:17.294  INFO 4065 --- [           main] com.aharrison.hello.Application          : Started Application in 5.245 seconds (JVM running for 6.088)


3 commentaires

Merci pour votre réponse! J'ai ajouté la dépendance et j'ai toujours des problèmes. Après avoir comparu la sortie de mon application à la tienne, j'échoue juste après le deuxième message: "AtionconfigemeddeddedbapplicationContext". Au lieu de cela, je reçois ce qui suit: "2014-12-27 16: 09: 44.528 info 880 --- [Main] .blclassPathloggingApplicationListener: Application n'a pas pu commencer par CLASSPATH:" \ N "2014-12-27 16:09: 44.541 Erreur 880 --- [Main] Osboot.springApplication: Échec du démarrage de l'application "\ n suivi de l'exception affichée ci-dessus.


@AdamHarrison Avez-vous déjà trouvé une résolution à cela? Je reçois cette erreur et j'essaie de dépanner.


@Brod Désolé, je pense que j'ai abandonné cela après quelques jours et je n'ai pas été revenu du tout. Je ne me souviens pas si je l'ai jamais eu pour travailler ou je viens d'abandonner et de passer à autre chose.



0
votes

Spring Boot 1.2.2 est publié, je conseillerais de passer à la nouvelle version, car il s'agit d'un nombre important de correctifs. Il utilise également la Security Spring-Security 3.2.6. Vous devriez faire très attention lorsque vous déclarez les dépendances autres que celles qui viennent par défaut, car le démarrage vient déjà avec la majeure partie de celle-ci. J'ai eu le même problème avec l'utilisation du démarrage de printemps 1.2.2 avec la sécurité de printemps 3.2.5 mais quand j'ai roulé à la botte de printemps 1.2.1 Tout allait bien.


0 commentaires

1
votes

Retirez le @ComponentsCan qui est placé au-dessus de la classe d'application. @SpringboOtApplication ajoute par défaut si les classes que vous devez numériser sont dans le même package que la classe d'application.


0 commentaires

0
votes

Placer @springbooPlication Annotation sur la classe d'application et placer la classe d'application dans le même paquet ou le package parent des classes appelées résoudre le problème.


0 commentaires