无法访问javax.naming.Context

时间:2012-04-29 09:48:12

标签: jboss osgi jndi

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

Context ctx = new InitialContext();

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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