CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

在servlet中如何加载调用EJB??郁闷!

楼主gjgj3368(冷面修罗)2005-04-21 13:30:43 在 Java / J2EE / EJB / JMS 提问

在servlet中如何加载调用EJB??郁闷! 问题点数:100、回复次数:14Top

1 楼gjgj3368(冷面修罗)回复于 2005-04-22 09:06:38 得分 0

沒有人知道嗎?Top

2 楼ll42002(灰舌)回复于 2005-04-22 09:08:34 得分 0

和其他客户端调用方法一样。Top

3 楼topil(认认真真学习,塌塌实实工作)回复于 2005-04-22 09:14:03 得分 0

将EJB部署到应用服务器中,然后通过其HOME   INTERFACE   来调用BEAN中的方法Top

4 楼itjourney(IT之旅)回复于 2005-04-22 10:57:52 得分 50

try   {  
          Properties   prop   =   new   Properties();  
          prop.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");  
          prop.put(Context.PROVIDER_URL,   "t3://localhost:7001");  
          Context   ctx=new   InitialContext(prop);  
          Object   objref   =   ctx.lookup   ("Hello");  
          HelloHome   Hellohome   =   (HelloHome)PortableRemoteObject.narrow(objref,   HelloHome.class);  
          Hello   Hellotest   =   Hellohome.create();  
          //@todo  
  }   catch   (Exception   ex)   {  
          ex.printStackTrace();  
  }    
  Top

5 楼gjgj3368(冷面修罗)回复于 2005-04-25 08:35:25 得分 0

還是不太明白,頂!  
  那位給我說詳細點!不甚感激!Top

6 楼Coolfatman(180)回复于 2005-04-25 15:40:00 得分 50

itjourney(IT之旅)   已经写得很清楚了  
  我帮他加个注释吧,  
   
  try   {  
          Properties   prop   =   new   Properties();  
          prop.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");  
          //配置你ejb服务器的地址和端口  
          prop.put(Context.PROVIDER_URL,   "t3://localhost:7001");  
          Context   ctx=new   InitialContext(prop);  
          //查找jndi名字,这里假设是Hello  
          Object   objref   =   ctx.lookup   ("Hello");  
          //建立home对象,XxxxHome就是   这里假设是ejb   是Hello   远程Home接口是XxxxHome  
          HelloHome   Hellohome   =   (HelloHome)PortableRemoteObject.narrow(objref,   HelloHome.class);  
          //用create方法得到远程接口   Hellotest(首字母应该小写比较规范)  
          Hello   Hellotest   =   Hellohome.create();  
          //@todo把你要进行的下一步操作写在下面例如  
          //Hellotest.killMyMachine();  
  }   catch   (Exception   ex)   {  
          ex.printStackTrace();  
  }Top

7 楼popufig(失散的影子)回复于 2005-04-25 23:30:11 得分 0

如果你会用一般的客户端调用EJB,那么Servlet的调用是差不多的(如果你还不会的话要好好补补功课了),区别在于如果Web容器如果和EJB容器在一个JVM里就可以用Local接口而不是Remote接口来提高性能,当然写法只有一点点区别,即是获得Home接口的不同Top

8 楼gjgj3368(冷面修罗)回复于 2005-04-26 08:56:04 得分 0

/*  
  private   ml.MLAdminHome   getHome()   throws   NamingException   {  
  return   (ml.MLAdminHome)   getContext().lookup(ml.MLAdminHome.JNDI_NAME);  
  }  
   
  private   InitialContext   getContext()   throws   NamingException   {  
  Hashtable   props   =   new   Hashtable();  
   
  props.put(InitialContext.INITIAL_CONTEXT_FACTORY,  
  "org.jnp.interfaces.NamingContextFactory");  
  props.put(InitialContext.PROVIDER_URL,   "jnp://127.0.0.1:1099");  
   
  //   This   establishes   the   security   for   authorization/authentication  
  //   props.put(InitialContext.SECURITY_PRINCIPAL,"username");  
  //   props.put(InitialContext.SECURITY_CREDENTIALS,"password");  
   
  InitialContext   initialContext   =   new   InitialContext(props);  
  return   initialContext;  
  }  
   
  public   void   testBean()   {  
   
  try   {  
  ml.MLAdmin   myBean   =   getHome().create();  
   
  //--------------------------------------  
  //This   is   the   place   you   make   your   calls.  
  System.out.println(myBean.getName("gujian@163.com"));  
   
  }   catch   (RemoteException   e)   {  
  e.printStackTrace();  
  }   catch   (CreateException   e)   {  
  e.printStackTrace();  
  }   catch   (NamingException   e)   {  
  e.printStackTrace();  
  }  
  }*/  
  我用上面的方法在SERVLET中调用,提示有错误,说ml.MLAdminHome   这个符号不能被识别  
  但是上面的方法在普通的客户端是可以的,各位大侠,这是为什么呀?Top

9 楼gjgj3368(冷面修罗)回复于 2005-04-28 16:35:39 得分 0

顶  
  Top

10 楼wa0clever(不懂→问)回复于 2005-04-28 17:51:23 得分 0

1   查找jndi   name  
  2   转换类型(Home)  
  3   调用Home的方法Top

11 楼gjgj3368(冷面修罗)回复于 2005-05-08 08:35:22 得分 0

再顶Top

12 楼xiaxilin(彩色电脑)回复于 2005-05-08 08:51:30 得分 0

markTop

13 楼knight_yl(knight_yl)回复于 2005-05-08 08:59:47 得分 0

哦,GOOD~~  
  VERY   GOOD.Top

14 楼gjgj3368(冷面修罗)回复于 2005-05-08 15:20:37 得分 0

搞定,结帐!!!!!!!Top

相关问题

  • 关于servlet里调用ejb
  • servlet调用ejb的问题!
  • Delphi7 调用Ejb
  • 在jsp页面加载时自动调用某个特定的servlet,由servlet查询数据库输出WEB页面返回给jsp显示?
  • 在线求助<jb6+weblogic 6.1>下如何用servlet调用ejb?
  • 如何用SERVLET调用在本地或远程的EJB组件?
  • 关于延迟加载、间接调用和API钩子
  • 在structs下如何在加载页面的时候调用action
  • evc中调用InterruptDone函数,要加载什么头文件?
  • 如何在动态加载调用dll中的导出类

关键词

  • ejb
  • 调用
  • hellohome
  • prop
  • context
  • jndi
  • ctx
  • put
  • properties
  • home

得分解答快速导航

  • 帖主:gjgj3368
  • itjourney
  • Coolfatman

相关链接

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

广告也精彩

反馈

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