contesto accesso Spring in OSGi fascio
-
05-10-2019 - |
Domanda
Ho un fascio OSGi che utilizza il file fascio-context.xml per inizializzare un fagiolo.
<bean id="myBean" class="test.MyClass">
<property name="output" value="test"/>
</bean>
Ho una classe fabbrica che ha bisogno di ottenere l'istanza. Nel mondo non-OSGi, ho sempre e solo il seguente per inizializzare il contesto e ottenere un handle a un fagiolo ...
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bundle-context.xml");
MyClass bean = (MyClass) applicationContext.getBean("myBean");
Ma, in OSGI (FuseESB 4.2, Servicemix4), il contenitore carica automaticamente il file bundle-context.xml e inizializza il contesto molla. Se carico del contesto in modo esplicito (utilizzando il codice di cui sopra), si creano poi 2 contesti (che è male). Quindi, qual è il modo corretto per ottenere un handle al medesimo contesto / fagiolo?
Soluzione
suppongo sia moduli dinamici molla che carica il contesto - quindi non si dovrebbe fare questo per il tuo. Dai un'occhiata alla primavera DM documentazione - questo sarà utile.
Primavera DM pubblicherà il contesto dell'applicazione come un servizio OSGi. Date un'occhiata alla spiegazione qui e seguire le raccomandazioni.
veda anche il mio commento qui sotto.