2010-12-08 3 views
0

Ich habe eine Klasse, die in sie injiziert zwei Eigenschaften bekommt:Frühling Problem - Eigenschaft injiziert OK aber null, wenn ich versuche, es zu benutzen

private CustomRatesService customRatesService; 
private TokenAuthenticator tokenAuthenticator; 

public void setCustomRatesService(CustomRatesService customRatesService) { 
    this.customRatesService = customRatesService; 
} 

public void setTokenAuthenticator(TokenAuthenticator tokenAuthenticator) { 
    this.tokenAuthenticator = tokenAuthenticator; 
} 

Hier ist die applicationContext.xml:

<bean id="customRatesServiceBean" class="com.ms.rate.service.SetCustomRatesResourceImpl"> 
<property name="tokenAuthenticator" ref="tokenAuthenticator"/>  
    <property name="customRatesService" ref="customRatesService"/> 
</bean> 

Und eine services.xml Datei die Bohnen

<bean id="customRatesService" class="com.ms.rate.service.CustomRatesServiceImpl"> 
    <property name="customRateDao" ref="customRateDao" /> 
</bean> 

<bean id="tokenAuthenticator" class="com.ms.rate.service.TokenAuthenticatorImpl"> 
    <property name="authenticationUrl" value="${AUTHENTICATION_URL}"/> 
</bean> 

Doch wenn ich einen Haltepunkt in einem Verfahren setzen, kann ich sehen, dass der tokenA enthält Authenticator ist immer Null, obwohl die andere Eigenschaft einen Wert

hat Könnte es sein, weil die Klasse eine WebService-Annotation hat? Ich bin völlig verwirrt.

Ich habe alle setzen Debug über den Ort und ich kann sehen:

Die tokenAuthenticator Bohne wird auf jeden Fall erstellt zu werden. Plus, es wird definitiv injiziert! Ich kann eine gültige Referenz sehen, wenn ich die Referenz aus der Injizierungsmethode in der Klasse ausdrucke. Es ist nur null, wenn ich es benutze ..

Sehr dankbar für irgendwelche Gedanken !!

Danke!

Antwort

0

Ok, es stellte sich als idiotischer Fehler heraus.

Aus irgendeinem Grund hatte ich diese Klasse als die Implementierung für zwei Bohnen verwendet. Der Debugger zeigte mir, dass der Injektor aufgerufen wurde, aber bei der Erstellung der Bean, die ich nicht verwendete. Auf der Bean, die ich benutzte, hatte ich die zweite Eigenschaft nicht hinzugefügt. Gah ...

Nur lassen Sie dies hier für den Fall, dass jemand anderes etwas so Dummes tut, und wenn nichts anderes als eine kleine Selbstdemütigung, um mich davon abzuhalten, dies wieder zu tun.

Verwandte Themen