2012-04-03 4 views
1

Ich möchte eine Bean injizieren, die die Map-Einträge bei hazelcast beibehalten wird.Bean-Injection bei Hazelcast fehlgeschlagen map-store Klasse

<map name="storethiselements-map"> 
<backup-count>1</backup-count> 
<map-store enabled="true"> 
<class-name>name.of.MapPersistenceObject</class-name> 
<write-delay-seconds>0</write-delay-seconds> 
</map-store> 
</map> 

Dies sind Errichterargumente für die hazelcast-Instanz. Im MapPersistenceObject existiert ein Service, der dafür verantwortlich ist, die Einträge zu erhalten. Ich habe MapPersistenceObject als Komponente markiert und das Service-Objekt Autowired gemacht, damit Spring die richtige Service-Bean mit der richtigen Datenquelle eingibt.

Ich habe das versucht, aber ich bekomme einen NullPointer, wo der Service injiziert werden soll. Mir scheint, dass Spring das MapPersistenceObject nicht mit dem Dienst verbinden oder autowire lassen kann. Es sieht so aus:

@Component 
public class MapPersistenceObject implements 
    MapLoader<Long, DeviceWakeupAction>, MapStore<Long, DeviceWakeupAction> { 
@Autowired 
StoreMapEntries storeMapEntriesService; 
    [...] 

Vielleicht kennt jemand eine Lösung des Problems?

Grüße & & tia noircc

Antwort

10

Sie Spring-Konfiguration, nicht Hazelcast XML-Konfiguration verwenden soll.

<hz:hazelcast id="hazelcast"> 
    <hz:config> 
     ... 
     <hz:map name="storethiselements-map" backup-count="1"> 
      <hz:map-store enabled="true" implementation="mapPersistenceObject" write-delay-seconds="0"/> 
     </hz:map> 
     ... 
    </hz:config> 
</hz:hazelcast> 

<bean id="mapPersistenceObject" class="name.of.MapPersistenceObject"/> 

Siehe Hazelcast Spring integration.

+0

Ich benutze hazelcast Feder Integration, und es ist mit nullpointer Ausnahme beim Start fehlgeschlagen, das ist meine Konfiguration, können Sie mir bitte helfen. ' ' –