Поиск JNDI из пакета равноденствия OSGI, развернутого на tomcat (мостовой режим)

Мой источник данных настроен в tomcat\context.xml. Я развернул bridge.war, предоставленный Eclipse, чтобы получить среду servletbridge.

Я разработал еще один пакет osgi, который содержит код регистрации сервлета, и моя цель состоит в том, чтобы JNDI искал источник данных из этого пакета сервлета.

Однако я получаю

javax.naming.NoInitialContextException:Cannot instantiate class: org.apache.naming.java.javaURLContextFactory (root cause classnotfound for org.apache.naming.java.javaURLContextFactory)

когда я пытаюсь следующий код в моем OSGI-комплекте

        Context initContext = new InitialContext();
        Context envContext = (Context) initContext.lookup("java:/comp/env");
        DataSource ds = (DataSource) envContext.lookup("jdbc/TestDB");

Я добавил catalina.jar в мой контейнер OSGI также в качестве зависимости в моем комплекте OSGI.

Мой launch.ini из bridge.war выглядит так:

osgi.*=@null
org.osgi.*=@null
eclipse.*=@null

osgi.parentClassloader=ext
osgi.contextClassLoaderParent=ext
org.osgi.framework.system.packages.extra=org.apache.naming.java

Может ли кто-нибудь помочь мне с этим?

1 ответ

Решение

Родитель встроенного контейнера OSGi - ext: Загрузчик класса расширения Java

Чтобы видеть классы Tomcat, родительский загрузчик классов должен быть изменен в файле launch.ini на fwk: загрузчик классов платформы OSGi.

При этом родительский загрузчик классов встроенного контейнера OSGi будет загрузчиком классов веб-приложения. Если пакет во встроенном контейнере OSGi хочет использовать класс из веб-приложения или Tomcat напрямую, вам, возможно, придется перечислить пакет класса с параметром org.osgi.system.packages.extra.

Дополнительная информация о родительских загрузчиках классов встроенного равноденствия: http://wiki.eclipse.org/FAQ_How_do_I_add_a_library_to_the_classpath_of_a_plug-in%3F

Дополнительная информация об иерархии загрузчиков классов Tomcat: http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html

Другие вопросы по тегам