EJB问题!!!是高手就来!!!

ip_moon 2009-03-05 06:29:08
今天刚接触EJB,编写了一个客户端如下(在EJB_01_Client项目里):
1、public class FirstEjbClient {
public static void main(String[] args) throws Exception{
InitialContext context = new InitialContext();
FirstEjb fe = (FirstEjb)context.lookup("FirstEjbBean/remote");
String s = fe.saySomething("moon");
System.out.println(s);
}
}
运行时报错:
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(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.moon.ejb.FirstEjbClient.main(FirstEjbClient.java:9)
2、说明:
已经将项目部署到了JBOSS服务器上,版本是4.2.2.GA,部署没有问题,我已经引进了jboss-4.2.2.GA\client下所有的jar包,而且引进了EJB项目(ejb_01)下EJB接口(FirstEjb)的JAR包。
3、问题:
(1)请问报错是什么意思?怎么打印不出结果呢?
JNDI没有初始化吗,我已经在EJB_01_Client的src目录下创建了jndi.properties文件:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost
(2)JBOSS需要配置环境变量吗?(我今天第一次接触JBOSS)

...全文
154 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ip_moon 2009-03-06
  • 打赏
  • 举报
回复
自己再顶一次!
li_d_s 2009-03-06
  • 打赏
  • 举报
回复
jndi.properties不会自动读的,可以手动:
Properties props = new Properties();
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("jndi.properties"));
InitialContext context = new InitialContext(props);
liupengbart 2009-03-06
  • 打赏
  • 举报
回复
我以前也碰到过这样的问题,你看书上或者别人写的例子上面没有传入参数也可以。但自己那样写却会报错。 不过你可以尝试一下把参数放进去,然后设置一些属性的值。再测试一下,看问题是否解决。
liupengbart 2009-03-06
  • 打赏
  • 举报
回复
根据报的错误来看,是因为new InitialContext(); 容器在初始的时候,构造方法里面需要传入一些参数。比如协议之类的东东。

阿里路亚1984 2009-03-06
  • 打赏
  • 举报
回复
我就不来 !
ip_moon 2009-03-05
  • 打赏
  • 举报
回复
失望~达人在哪里???
ip_moon 2009-03-05
  • 打赏
  • 举报
回复
真没有人能解决吗???
ouyangqinxin 2009-03-05
  • 打赏
  • 举报
回复
视频上好多的动作是显示不出来的!
ip_moon 2009-03-05
  • 打赏
  • 举报
回复
但是视频上就是直接InitialContext context = new InitialContext()这样用的啊~我是跟着视频做的~
一洽客服系统 2009-03-05
  • 打赏
  • 举报
回复
InitialContext context = new InitialContext();
如果要直接使用的话你的在EJB的容器里 你在外部类里的先设置url等属性
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
p.put(Context.PROVIDER_URL, "localhost:1099");
InitialContext context = new InitialContext(p);

67,549

社区成员

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

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