【发布时间】:2020-07-31 09:19:30
【问题描述】:
有人知道这是否可能吗???
我遇到过使用 google Guice 启动应用程序的情况。默认情况下,它使用org.apache.camel.guice.jndi.GuiceInitialContextFactory 创建一个InitialContext,它隐藏在camel-guice 启动逻辑中。
我在 karaf 中运行它,它有自己的方式来创建 InitialContext
javax.naming.spi.NamingManager 调用org.apache.aries.jndi.OSGiInitialContextFactoryBuilder 等
发生的情况是,当我从 bundle Activator 调用 InitialContext = new InitialContext() 时,我得到对 karaf 上下文的引用,但是 如果我这样做 不 这样做并且只需创建一个org.apache.camel.guice.Main 来启动应用程序,只要org.apache.camel.guice.jndi.GuiceInitialContextFactory 对类加载器可见,它将正确创建 guice 上下文,启动应用程序,但我将无法从“guiced”中“看到”karaf 的初始上下文" 类。
所以我需要做的是让 Guice 使用上面描述的 GuiceInitialContextFactory 启动,但也能够获得对 kararf 的 InitialContext 的引用...我不太熟悉执行此操作的 API .
【问题讨论】:
标签: java apache-camel osgi guice jndi