在学习ejb的时候,抄书上的代码,如下:package helloworld;import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;public class HelloClient {
public static void main(String[] args) throws Exception{
Properties props=System.getProperties();
Context ctx=new InitialContext(props);
Object obj=ctx.lookup("examples.ejb21.HelloHome");
HelloHome home=(HelloHome) javax.rmi.PortableRemoteObject.narrow(obj,HelloHome.class);
Hello hello=home.create();
System.out.println(hello.hello());
hello.remove();
}
}
运行时提示如下:
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
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at helloworld.HelloClient.main(HelloClient.java:21)
Java Result: 1
请问什么原因???这个错误应该不是ejb的问题吧,应该是client的代码的问题吧?
import javax.naming.Context;
import javax.naming.InitialContext;public class HelloClient {
public static void main(String[] args) throws Exception{
Properties props=System.getProperties();
Context ctx=new InitialContext(props);
Object obj=ctx.lookup("examples.ejb21.HelloHome");
HelloHome home=(HelloHome) javax.rmi.PortableRemoteObject.narrow(obj,HelloHome.class);
Hello hello=home.create();
System.out.println(hello.hello());
hello.remove();
}
}
运行时提示如下:
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
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at helloworld.HelloClient.main(HelloClient.java:21)
Java Result: 1
请问什么原因???这个错误应该不是ejb的问题吧,应该是client的代码的问题吧?
看错误貌似是数据连接池的错误。是不是tomcat之类的没配置。
你在普通的应用程序里怎么行!
放到tomcat里面运行看看吧!
你必须通过页面,来调用方法访问,才行。
按照我用ejb3的经验, 如果是在eclipse 里面跑的话, EJB 部署在server 上面, 起server ,把server 的runtime 加到 这个普通java 应用的path里面,
就能访问 container里面的对象了yong 默认的
Context就可以
到现在我也不知道是什么原因
你按照你的[ejb3.0测试问题。]这个帖子我回答你的那个进行修改就OK了..