2015-11-07 4 views
8

Ho un'applicazione primavera Boot e ottengo al momento del lancio i seguenti messaggi:Come gestire "Nome bean rifiutato - nessun percorso URL identificato" in primavera?

7701 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor': no URL paths identified 
7701 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor': no URL paths identified 
7701 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'org.springframework.context.annotation.internalRequiredAnnotationProcessor': no URL paths identified 
7701 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'org.springframework.context.annotation.internalCommonAnnotationProcessor': no URL paths identified 
7701 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'org.springframework.context.annotation.internalPersistenceAnnotationProcessor': no URL paths identified 
7701 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'application': no URL paths identified 
7701 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor': no URL paths identified 
7701 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor': no URL paths identified 
7702 [main] DEBUG o.s.w.s.h.BeanNameUrlHandlerMapping - Rejected bean name 'bookingController': no URL paths identified 

Ciò accade per ogni @Autowired ho usato nella mia app.

L'unica configurazione per la mia domanda è:

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

Tutte le idee perché ho ottenere quei messaggi?

Ho provato a google dopo quei messaggi e altri hanno detto che potrebbe trattarsi di un conflitto tra il gestore di annotazioni predefinito e il gestore di annotazioni personalizzate che non ho definito.

Queste sono le mie dipendenze Gradle

dependencies { 
    compile('org.springframework.boot:spring-boot-autoconfigure') 
    compile('org.springframework.boot:spring-boot-starter-web') 
    compile("org.springframework.boot:spring-boot-starter-data-rest") 
    compile('org.springframework.boot:spring-boot-starter-data-jpa') 
    compile('com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.6.1') 
    compile('org.springframework.boot:spring-boot-starter-security') 
    compile("mysql:mysql-connector-java:5.1.34") 

    testCompile("junit:junit") 
    testCompile("org.springframework.boot:spring-boot-starter-test") 
    testCompile("com.jayway.jsonpath:json-path") 
    testCompile("com.jayway.jsonpath:json-path-assert:0.9.1") 
} 

Nel mio percorso di classe non ho alcuna impostazione che possono caso.

+0

ho aggiunto le mie dipendenze che uso a questo punto. – tzortzik

+5

Puoi ignorare i messaggi, se guardi il messaggio che vedi sono solo informazioni di debug. Il 'BeanNameUrlHandlerMapping' controlla il nome del bean e controlla se quel nome può essere convertito in un URL. Questi messaggi sono puri per tua informazione e puoi (e dovresti) ignorarli poiché non c'è nulla che tu possa fare per loro. È possibile disabilitare la registrazione di debug e quindi non li vedrai. Quindi non ha nulla a che fare con le tue dipendenze o che cosa si comporta normalmente. –

+0

In realtà ho avuto lo stesso problema (nella registrazione in modalità debug) per la mia applicazione: https://github.com/vdenotaris/spring-boot-security-saml-sample – vdenotaris

risposta

7

Come detto nei commenti, questo è un messaggio di debug e non è necessario intraprendere alcuna azione.

Per chi fosse interessato, ecco alcuni dettagli:

All'avvio un HandlerMapping viene eseguito per determinare una corrispondenza tra le richieste e gli oggetti del gestore. La classe AbstractDetectingUrlHandlerMapping ha un metodo detectHandlers che registra tutti i gestori trovati nel ApplicationContext corrente. Quando si itera su bean, i bean per i quali non sono stati identificati percorsi URL, vengono rifiutati.

Ecco il corrispondente code:

// Take any bean name that we can determine URLs for. 
for (String beanName : beanNames) { 
    String[] urls = determineUrlsForHandler(beanName); 
    if (!ObjectUtils.isEmpty(urls)) { 
     // URL paths found: Let's consider it a handler. 
     registerHandler(urls, beanName); 
    } 
    else { 
     if (logger.isDebugEnabled()) { 
      logger.debug("Rejected bean name '" + beanName + "': no URL paths identified"); 
     } 
    } 
} 
+0

grazie per la risposta. Ho visto che gli stessi messaggi di debug erano preoccupati perché l'ho scambiato per i mapping delle richieste. Sono ancora perso perché non capisco la differenza tra i mapping delle richieste (che si trovano sui miei controller) e le mappature degli URL (che il BeanNameUrlHandlerMapping sta cercando e quali non sono stati trovati sui miei controller) Potresti collegare una documentazione che spiega la differenza? Perché non l'ho trovato. –

+0

Penso che sia meglio fare una nuova domanda per questo. –

+0

thx, fatto [qui] (https://stackoverflow.com/questions/44158550/what-is-the-difference-between-a-spring-request-mapping-and-url-mapping) –

Problemi correlati