`
yiyanwan77
  • 浏览: 183525 次
  • 性别: Icon_minigender_1
  • 来自: 威海
社区版块
存档分类
最新评论

EJB客户端调用报Need to specify class name in environment..的问题

    博客分类:
  • EJB
阅读更多

 

学习EJB3.0入门,部署了一个教程里的简单例子,用服务访问成功,但用客户端访问总报如下错误

Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial

网上搜了半天,都是说配置不对,但我使用的是代码InitialContext ctx=new InitialContext(props);的方式,不存在jndi配置文件不对的问题,最后想起之前一个教程里的一句命名空间的话,于是登录jboss控制台,找到部署的ejb,前面一个java提醒鸟我,将代码里lookup中参数前面加上java:,搞定。

 

全部代码如下:

public class EjbClient {

	public static void main(String[] args) {
		Properties props=new Properties();
		props.setProperty("java.naming.factroy.initial","org.jnp.interfaces.NamingContextFactory");
		props.setProperty("java.naming.provider.url","localhost:1099");//或者jnp://localhost...也可
		props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");//此行必须有
		try{
			InitialContext ctx=new InitialContext(props);
			HelloWorld helloworld=(HelloWorld)ctx.lookup("java:HelloWorldBean/remote");//前面的java是关键
			System.out.println(helloworld.sayHello("jack"));
		}catch(NamingException e){
			System.out.println("error:"+e.getMessage());
		}
	}
}
 

 

 

分享到:
评论
1 楼 InsistentToLove 2011-09-01  
[color=red][/color]

非常感谢哦~~
帮了我一个大忙啊~~

相关推荐

Global site tag (gtag.js) - Google Analytics