Cannot instantiate class: org.jnp.interfaces.Namin

lingxue 发布于 2010/11/04 18:08
阅读 1K+
收藏 1

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

18:04:02,358 ERROR [STDERR] javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory  [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory ]
18:04:02,359 ERROR [STDERR]     at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
18:04:02,359 ERROR [STDERR]     at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
18:04:02,359 ERROR [STDERR]     at javax.naming.InitialContext.init(Unknown Source)
18:04:02,359 ERROR [STDERR]     at javax.naming.InitialContext.<init>(Unknown Source)
18:04:02,359 ERROR [STDERR]     at servlet.SampleServlet.initBean(SampleServlet.java:92)

在网上找了各种方法,都试过了,都不好使。

1、把javaall-client.jar、jnp-client.jar文件放到Java Build Path里

2、classpath里加%JBoss Home%\client\jbossall-client.jar

都不好使。哪位大侠帮帮忙看怎么回事呀

加载中
0
红薯
红薯

看你的这个异常堆栈,是SampleServlet这个类跑出来的错误

SampleServlet这个类是在什么web项目里?把这些jar包扔到web项目里的 WEB-INF/lib 目录下

0
lingxue
lingxue

引用来自#2楼“红薯”的帖子

看你的这个异常堆栈,是SampleServlet这个类跑出来的错误

SampleServlet这个类是在什么web项目里?把这些jar包扔到web项目里的 WEB-INF/lib 目录下

package servlet;
......
public class SampleServlet extends HttpServlet{
......
	private void initBean()throws ServletException{
		try{
			Properties properties = new Properties();
			//这里报错
			properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory ");
			properties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces ");
			properties.setProperty(Context.PROVIDER_URL, "localhost:1099"); 
			
			initialContext = new InitialContext(properties);
			Object objref = initialContext.lookup("security-sample/UserManagement");
			Object obj = PortableRemoteObject.narrow(objref,UserManagementHome.class);
			home = (UserManagementHome)obj;
			bean = home.create();
		}
		catch (CreateException e1) {
			e1.printStackTrace();
			throw new ServletException(e1.getMessage());
		}
		catch(NamingException ne){
			ne.printStackTrace();
			throw new ServletException(ne.getMessage());
		}
		catch (RemoteException e) {
		   e.printStackTrace();
		}
	}
......
}

 

SampleServlet这个类里的initBean()方法出现的错误。我的jar包都放到了JAR System Library里了的,必须要放到lib里面才行吗?

0
lingxue
lingxue

终于发现错误之处了:

properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory ");

这里"org.jnp.interfaces.NamingContextFactory "多了个空格

吸取教训,再也不要犯这种低级错误

谢谢【红薯】的帮助

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部