У меня проблема с доступом к ресурсам JNDI из пакета OSGI, размещенного в
Сервер приложений WebSphere (WAS) с использованием моста сервлета.
Не удается создать начальный контекст JNDI. Мой код:
Hashtable env = new Hashtable ();
env.put (Context.INITIAL_CONTEXT_FACTORY,
"Com.ibm.websphere.naming.WsnInitialContextFactory");
InitialContext ctx = новый InitialContext (env);
Это не с:
javax.naming.NoInitialContextException:
Не удалось создать InitialContext с использованием фабрики, указанной в hashtable {java.naming.provider.url = corbaloc: rir: / NameServiceServerRoot, java.naming.factory.initial = com.ibm.websphere.naming.WsnInitialContextFactory, java.naming.factory.ll. .pkgs = com.ibm.ws.naming: com.ibm.ws.runtime: com.ibm.iscportal.jndi} [Исключением корня является java.lang.NullPointerException]
Когда я запускаю тот же код непосредственно в модуле WAR (не используя OSGI), он успешен. Поэтому я предполагаю, что проблема заключается в доступе к JNDI из OSGI.
Я видел некоторые ссылки на проблемы Class Loader при доступе к JNDI из OSGI ... не уверен, что это моя проблема, поскольку вышеприведенное исключение явно не относится к загрузке классов, но, возможно, так оно и есть. Во всяком случае, если это проблема, я не уверен, как это исправить!
Действительно ли возможно получить доступ к записям JNDI и JDBC, настроенным в WAS, из моего модуля OSGI?
Мое приложение представляет собой Eclipse RAP (плагин Rich Ajax), упакованный в файл WAR с помощью инструментария продукта Eclipse WAR, описанного по адресу:
http://eclipsesource.com/blogs/2010/08/17/equinoxrap-war-deployment-an-end-to-the-pain/
Пока это работает успешно, кроме доступа к JNDI.
Большое спасибо
David