2012-04-29 67 views
0

我正在使用JBOSS AS 7.1.1。我已经注册了一个数据源,我尝试访问它throught一个JNDI在我的OSGi包,如:无权访问javax.naming.Context

Context ctx = new InitialContext(); 

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

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

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

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

回答

1

叶普,OSGi隔离那。你的Import-Packagejavax.naming。另外,您应该使用JNDIContextManager#newInitialContext()来创建初始上下文。

+0

我试过导入javax.naming包并得到相同的错误。 我以为这是一个JBoss错误 – Ivan 2012-04-29 11:06:07

+0

在MANIFEST.MF? – 2012-04-29 15:42:45

+0

问题通过删除清单中的javax.naming导入声明并再次添加清除。 – Ivan 2012-04-30 09:30:44