EJB3一个简单问题

Diving 2011-03-29 03:16:03
下面是我写的代码
package com.coolead.ejb3;

public interface Helloworld {

public String sayHello(String strName);
}

package com.coolead.ejb3.impl;

import javax.ejb.Remote;
import javax.ejb.Stateless;

import com.coolead.ejb3.Helloworld;

@Stateless
@Remote(Helloworld.class)
public class HelloWorldBean implements Helloworld{

public String sayHello(String strName) {

return strName+"说:你好世界,我来了";
}

}



package com.coolead.start;

import javax.naming.*;

import com.coolead.ejb3.Helloworld;
import java.util.Properties;

public class EJBClient {

/**
* @param args
*/
public static void main(String[] args) {
try {
InitialContext objInit = new InitialContext();
Helloworld hello = (Helloworld) objInit.lookup("HelloWorldBean/remote");
System.out.println(hello.sayHello("小呆"));
} catch (NamingException e) {
e.printStackTrace();
}
}

}

初学EJB,不怎么会,异常信息如下,求解答
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 com.coolead.start.EJBClient.main(EJBClient.java:19)
...全文
46 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Diving 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yingzhuo2011 的回复:]
缺少jndi的配置文件吧。 你要查找EJB的话,你要告诉到哪个端口哪个IP查找啊。


CSS code

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.……
[/Quote]嗯,谢谢,解决了
yingzhuo2011 2011-03-29
  • 打赏
  • 举报
回复
缺少jndi的配置文件吧。 你要查找EJB的话,你要告诉到哪个端口哪个IP查找啊。


java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099


你可以新建一个jndi.properties放在你的ClassPath下。
内容如上,最后端口号修改成JBOSS的端口号就好,你的不一定是1099,你自己查一下。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧