我正在使用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。
答案 0 :(得分:1)
Yepp,OSGi将其隔离开来。 Import-Package
为javax.naming
。此外,您应该使用JNDIContextManager#newInitialContext()
来创建初始上下文。