2010-09-09 13 views
2

Le ressort semble résoudre et créer les objets autowired juste au démarrage. Mais quand j'essaie d'y accéder, ils reviennent comme nul. Quelqu'un a des suppositions sur ce qui pourrait se passer?Dépendances auto-exécutées à venir null (Chacun d'entre eux)

également des informations XML est vide que je suis seulement permis un lien ...

<beans xmlns="" 
xmlns:xsi="" 
xmlns:p="" 
xmlns:mvc=""  
xmlns:context="" 
xsi:schemaLocation="...only allowed one hyperlink" default-autowire="byName"> 

<mvc:annotation-driven /> 

<context:component-scan base-package="com.blah.controller"/> 
<context:component-scan base-package="com.blah.*.service"/> 
<context:component-scan base-package="com.blah.*.dao"/> 

<context:annotation-config /> 

public class AuthFilter extends UsernamePasswordAuthenticationFilter { 

@Autowired 
private ProfileService profileService; 
    //.... Do more stuff below that shows profileService coming back as null. 

} 

j'ai pu utiliser un débogueur pour montrer que l'objet était en cours d'initialisation. Je peux coller mes bûches ici si vous voulez mais c'est beaucoup à éditer :).

Ajout d'un peu à ce où AuthFilter est défini:

<b:bean id="authenticationFilter" class="com.blah.auth.AuthFilter"> 
    <b:property name="authenticationManager" ref="authenticationManager" /> 
    <b:property name="filterProcessesUrl" value="/login/validate" /> 
    <b:property name="usernameParameter" value="username" /> 
    <b:property name="passwordParameter" value="password" /> 
    <b:property name="authenticationSuccessHandler" ref="authSuccessHandler" /> 
    <b:property name="authenticationFailureHandler" ref="authFailureHandler" /> 
</b:bean> 

L'analyse est le composant dans SpringApp-servlet.xml

J'ai créé un pastebin des journaux de démarrage. Pas de dés avec le déplacement de l'analyse des composants. http://pastebin.com/ttC5MPnQ

Répondre

3
  • voir si l'il y a quelque chose de suspect dans les journaux
  • il me semble que AuthFilter n'est pas un grain de printemps - soit la carte dans la configuration XML, ou annoter avec @Component.
  • supprimer default-autowire="byName" si vous n'avez pas une raison impérieuse de l'avoir défini.
  • assurez-vous d'utiliser ce filtre à l'intérieur du contexte, et non l'instanciation vous-même.
  • assurez-vous que vous ne parlez pas à un haricot défini dans un contexte parent (par exemple - un haricot défini dans applicationContext.xml ne peut pas accéder à un bean défini dans dispatcher-servlet.xml)
  • place un component-scan dans le applicationContext.xml (pas le servlet un). (Vous pouvez conserver celui dans le fichier xml de servlet mais le limiter aux paquets web uniquement)
+0

Hey Bohzo J'ai mis à jour le texte avec les éditions allant plus en détail. – Cay

+0

@ user443055 voir mis à jour (la dernière puce) – Bozho

+0

@Bozho Jetez un oeil à la pastebin que j'ai ajouté si vous le pouviez. J'ai attaché les journaux. Merci pour l'aide! – Cay