【问题标题】:have no access to javax.naming.Context无权访问 javax.naming.Context
【发布时间】:2012-04-29 09:48:11
【问题描述】:

我正在使用 JBOSS AS 7.1.1。我已经注册了一个数据源,并尝试通过我的 OSGI 包中的 JNDI 访问它,例如:

Context ctx = new InitialContext();

DataSource ds = (DataSource)ctx.lookup(datasource_jndi_name);

但是当我将我的包部署到 AS 时,我得到一个异常:ClassNotFoundException: javax.naming.Context。

上下文是在 rt.jar 中定义的,所以我尝试将它包装在 bundle 中并将其部署到 AS,但得到了同样的错误。

我尝试用 InitialContext 替换 Context 并得到 ClassNotFoundException: javax.naming.InitialContext。

【问题讨论】:

    标签: jboss osgi jndi


    【解决方案1】:

    是的,OSGi 将其隔离开来。您是 Import-Packagejavax.naming。此外,您可能应该使用JNDIContextManager#newInitialContext() 来创建初始上下文。

    【讨论】:

    • 我尝试导入 javax.naming 包并得到同样的错误。我认为这是一个 jboss 错误
    • 问题已通过删除清单中的 javax.naming 导入声明并重新添加来解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-28
    • 1970-01-01
    • 2018-07-26
    • 2010-10-21
    相关资源
    最近更新 更多