У меня проблемы с запуском Guice 3 в контейнере OSGi.Ниже приведен простой тест, который я написал, чтобы проверить, хорошо ли работает Guice с OSGi.
Простой модуль guice, такой как:
public class Module extends AbstractModule {
@Override
protected void configure() {
bind(IInterface.class).to(IImplement.class);
}
}
И IInterface, и IImplement очень тривиальны.
Активатор OSGi выглядит следующим образом:
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
Injector inj = Guice.createInjector(new Module());
IInterface e = inj.getInstance(IInterface.class);
e.sayHello();
}
В Eclipse я создал цель, содержащую все баночки Guice, и для того, чтобы guice разрешился сам, я сделал два дополнительных пакета для aopalliance.jar и javax.injector.jar
Однако этот простой тест не может загрузить комплект тестов, выдает сообщение об ошибке с жалобой, что не удается найти класс guice:
Exception in guicetest.Activator.start() of bundle guicetest
Caused by: java.lang.NoClassDefFoundError: com/google/inject/binder/AnnotatedBindingBuilder
at guicetest.guice.Module.configure(Module.java:11)
Надеюсь, я сделалпроблема ясна.Может кто-нибудь показать мне, как решить эту проблему?