tomcat\context.xml でデータソースを構成しています。サーブレットブリッジ環境を取得するために、Eclipse が提供する bridge.war をデプロイしました。
サーブレット登録コードを含む別の 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");
osgi コンテナーに catalina.jar を追加し、osgi バンドルの依存関係としても追加しました。
bridge.war の launch.ini は次のようになります。
osgi.*=@null
org.osgi.*=@null
eclipse.*=@null
osgi.parentClassloader=ext
osgi.contextClassLoaderParent=ext
org.osgi.framework.system.packages.extra=org.apache.naming.java
誰かがそれを手伝ってくれますか?