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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top