Я пытаюсь экспортировать компонент Spring в качестве службы, используя контекст приложения Spring, мне нужно, чтобы они экспортировались как область «прототипа», но это невозможно из-за того, что реестр службы OSGi кэширует службу как синглтон.
Проведя небольшое исследование, я наткнулся на сообщение. предлагая использовать область «сессии», чтобы обойти эту проблему. Я следую этому руководству, чтобы получить это работает, но я столкнулся с проблемой, связанной с тем, что загрузчик классов не находит интерфейс.
Вот как я объявляю bean
<osgi:service id="SimulationExporter" ref="simulationService" interface="org.geppetto.core.simulation.ISimulation"/>
<bean id="simulationService" scope="session" class="org.geppetto.simulation.SimulationService">
<aop:scoped-proxy proxy-target-class="false"/>
</bean>
При экспорте bean-компонента в другой пакет я получаю следующую ошибку
Caused by: java.lang.IllegalArgumentException: interface org.springframework.aop.scope.ScopedObject is not visible from class loader
at java.lang.reflect.Proxy.getProxyClass0(Proxy.java:484)
at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:713)
at org.springframework.aop.framework.JdkDynamicAopProxy.getProxy(JdkDynamicAopProxy.java:117)
Пакет, импортирующий сервисный компонент, имеет зависимость org.springframework.aop-3.0.0.RELEASE , которая также копируется в репозиторий virgo. Любые идеи, почему загрузчик классов не нашел тот интерфейс, который ему нужен для области «сеанс»?