CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

J2EE客户端不知道为什么查找不到EJB?

楼主wtjd()2005-04-01 21:47:02 在 Java / J2EE / EJB / JMS 提问

JNDI已经配置好,WEB组件可以访问EJB,  
  但每运行客户端就抛出异常,客户端代码如下:  
   
   
  import   converter.Converter;  
  import   converter.ConverterHome;  
  import   javax.naming.Context;  
  import   javax.naming.InitialContext;  
  import   javax.rmi.PortableRemoteObject;  
  import   java.math.BigDecimal;  
   
   
  public   class   ConverterClient   {  
          public   static   void   main(String[]   args)   {  
                  try   {  
                          Context   initial   =   new   InitialContext();  
                          Context   myEnv   =   (Context)   initial.lookup("java:comp/env");  
                          Object   objref   =   myEnv.lookup("ejb/SimpleConverter");  
   
                          ConverterHome   home   =  
                                  (ConverterHome)   PortableRemoteObject.narrow(objref,  
                                          ConverterHome.class);  
   
                          Converter   currencyConverter   =   home.create();  
   
                          BigDecimal   param   =   new   BigDecimal("100.00");  
                          BigDecimal   amount   =   currencyConverter.dollarToYen(param);  
   
                          System.out.println(amount);  
                          amount   =   currencyConverter.yenToEuro(param);  
                          System.out.println(amount);  
   
                          System.exit(0);  
                  }   catch   (Exception   ex)   {  
                          System.err.println("Caught   an   unexpected   exception!");  
                          ex.printStackTrace();  
                  }  
          }  
  }  
   
   
  异常信息如下:  
  Caught   an   unexpected   exception!  
  javax.naming.NoInitialContextException:   Need   to   specify   class   name   in   environmen  
  t   or   system   property,   or   as   an   applet   parameter,   or   in   an   application   resource   f  
  ile:     java.naming.factory.initial  
                  at   javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6  
  40)  
                  at   javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243  
  )  
                  at   javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.jav  
  a:280)  
                  at   javax.naming.InitialContext.lookup(InitialContext.java:347)  
                  at   ConverterClient.main(ConverterClient.java:46)  
  请按任意键继续   .   .   .  
   
   
  不知道是什么原因,麻烦帮忙看一下,  
  谢谢 问题点数:10、回复次数:5Top

1 楼popufig(失散的影子)回复于 2005-04-02 00:31:06 得分 5

Context   initial   =   new   InitialContext();  
  这里有问题  
   
  如果你用同样的调用代码用web可以调用说明你的web容器和EJB容器实际上是在同一个JVM里  
   
  但是你启动另外一个Client来调用EJB,就说明这是不同的JVM  
   
  所以你应该这么写(weblogic):  
   
              properties   =   new   Properties();  
              properties.put(Context.INITIAL_CONTEXT_FACTORY,  
                                            "weblogic.jndi.WLInitialContextFactory");  
              properties.put(Context.PROVIDER_URL,   "t3://localhost:7001");  
   
              Context   initial   =   new   InitialContext(properties);  
   
  Top

2 楼wtjd()回复于 2005-04-04 08:06:46 得分 0

 
  可是我在同一台机器上运行我的客户端程序,  
  所以客户端与EJB所在JVM是一样的呀,  
  还有你这样写:  
  properties   =   new   Properties();  
              properties.put(Context.INITIAL_CONTEXT_FACTORY,  
                                            "weblogic.jndi.WLInitialContextFactory");  
              properties.put(Context.PROVIDER_URL,   "t3://localhost:7001");  
   
              Context   initial   =   new   InitialContext(properties);  
   
  我不知道你为什么这样写?可否解释一下,谢谢啊!Top

3 楼talenty(残越)回复于 2005-04-04 09:30:45 得分 1

up  
  Top

4 楼wtjd()回复于 2005-04-07 08:34:22 得分 0

 
  我使用的初始化工厂类是com.sun.jndi.cosnaming.CNCTxFatory,  
  那我应该如何运行我的Client呢?  
  还有一点,对于工厂这个概念你是如何理解的?  
  http://community.csdn.net/Expert/topic/3902/3902144.xml?temp=5.076236E-02  
  Top

5 楼gianfeng(小通)回复于 2005-04-07 09:05:06 得分 4

听   popufig   的没错,先跑通了,然后再想为什么。  
   
  你的那个web应用,如果单独放到   resin等web   应用中,来访问EJB,肯定也会遇到类似的问题的。Top

相关问题

  • 查找
  • 客户端用jdni查找ejb对象的几种写法有什么区别?
  • 查找路径!
  • 查找问题
  • 查找文件
  • 条件查找?
  • 三分查找
  • 有关查找?
  • 查找字段
  • 查找问题……

关键词

  • 客户
  • ejb
  • converterhome
  • currencyconverter
  • bigdecimal
  • amount
  • converter
  • context
  • javax
  • import

得分解答快速导航

  • 帖主:wtjd
  • popufig
  • talenty
  • gianfeng

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo