Jboss 无法访问javax.naming.Context

Jboss 无法访问javax.naming.Context,jboss,osgi,jndi,Jboss,Osgi,Jndi,我正在使用JBossAS 7.1.1。我已经注册了一个数据源,并尝试通过OSGI包中的JNDI访问它,如: Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup(datasource_jndi_name); 但是当我将包部署到时,我得到一个异常:ClassNotFoundException:javax.naming.Context 上下文是在rt.jar中定义的,所以我尝试将其包装在bundle中

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

Context ctx = new InitialContext();

DataSource ds = (DataSource)ctx.lookup(datasource_jndi_name);
但是当我将包部署到时,我得到一个异常:ClassNotFoundException:javax.naming.Context

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


我试图用InitialContext替换上下文,得到了ClassNotFoundException:javax.naming.InitialContext。

Yepp,OSGi将其隔离开来。您可以为
javax.naming
导入一个
包。此外,您可能应该使用
JNDIContextManager#newInitialContext()
来创建初始上下文。

我尝试导入javax.naming包,但得到了相同的错误。我认为这是一个jboss错误问题,可以通过删除清单中的javax.naming导入声明并再次添加它来解决。