站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题在做一个EJB例子时,出现了这样的问题

在做一个EJB例子时,出现了这样的问题

摘要: 在做一个EJB例子时,出现了这样的问题


run.HelloWorldClient:
[java] Exception in thread "main" javax.naming.NoInitialContextException: 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
[java] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
[java] at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
[java] at javax.naming.InitialContext.getNameInNamespace(InitialContext.java:497)
[java] at ejb3.test.client.HelloWorldClient.main(HelloWorldClient.java:13)

请问,InitialContext要怎么配置才能解决这个问题


学习


这个问题也是太抽象了。。。。容器是什么?错误一贴就可以解决所以的问题啊。。。。
昏。。。。。。。


主函数格式应为:public static void main(String[]args){}


主函数没错啊, 
这个是主函数:

package ejb3.test.client;

import javax.naming.InitialContext;
import ejb3.test.session.HelloWorld;
public class HelloWorldClient
{
public static void main(String[] args) throws Exception
{
InitialContext ctx = new InitialContext();
HelloWorld helloWorld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
System.out.println(helloWorld.echo("Hello World, Joeyta"));
}
}



这个是我写的EJB:

package ejb3.test.session;

public interface HelloWorld {
public String echo(String msg);
}

package ejb3.test.session;

import javax.ejb.Local;
@Local
public interface HelloWorldLocal extends HelloWorld {
}

package ejb3.test.session;

import javax.ejb.Remote;
@Remote
public interface HelloWorldRemote extends HelloWorld {
}

package ejb3.test.session;

import javax.ejb.Stateless;
@Stateless
public class HelloWorldBean implements HelloWorldRemote, HelloWorldLocal {
public String echo(String msg) {
System.out.println("Joeyta try Hello World.");
return msg;
}
}



最后是Ant的配置:





































可以参看:http://www.blogjava.net/qiyadeng/archive/2006/02/04/29547.html
InitialContext ctx = new InitialContext();这句你注意,根据容器的厂商不一样,写法有点不一样。。。。。。


你少了jndi的环境,加上jndi.properties文件
InitialContext ctx = new InitialContext();
如果你在jboss下,是没有错的。
上面说的是jndi初始化异常,不信你可以设置断点,
执行InitialContext ctx = new InitialContext();就会异常

多谢楼上的。


↑返回目录
前一篇: ???创建根和骨架出错
后一篇: 什么叫有状态对象和无状态对象?