Eclipse+JBoss+EJB3使用SessionBean的本地接口

疆括仕网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Eclipse+JBoss+EJB3使用SessionBean的本地接口

有时客户端程序(如JSP、Servlet)会和EJB组件运行在同一个JVM上,如在同一个J2EE服务器(JBoss、Weblogic等)中运行。这时就没必要

成都创新互联于2013年成立,先为荣县等服务建站,荣县等地企业,进行企业商务咨询服务。为荣县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

再通过远程(remote)接口访问Session Bean了,因为客户端和session bean都在同一个jvm上,只需要通过本地接口(local)访问即可。就象直接访问本地类一样(当然,不能直接访问EJB类,需要使用jndi和 local接口来获得本地接口对象。当然,也可以通过remote接口来访问ejb,不过这样会有一些性能损失。就象在同一台机器上还通过socket进行访问一样,很多性能都损耗在网络上了。下面我们来举个简单的例子来看一下如何使用本地接口来访问session bean。
    先建立一个session bean本地接口,代码如下:

 

      
      
      
  1. package service;  
  2.  
  3. import java.util.List;  
  4. import javax.ejb.Local;  
  5.  
  6. @Local  
  7. public interface ShoppingCart  
  8. {  
  9.     //  添加某个商品信息  
  10.     public void addCommodity (String value);  
  11.     //  获得客户购买的所有商品的纱衔泥  
  12.     public List getCommodity();  

 

关于Session Bean的具体实现类与远程接口的实现类一样,读者可以参考《编写有状态的SessionBean》一文中的ShoppingCartBean类。

下面在Eclipse中新建立一个Web工程(工程名:JBossWeb),该工程需要引用MyEJB工程(包含EJB组件的工程),在WebContent目录中建立一个test.jsp页面,代码如下:

 

      
      
      
  1. <%@ page language="java" contentType="text/html; charset=GB18030" 
  2.     pageEncoding="GB18030" import="java.util.List,java.util.Propert     
  3. javax.naming.InitialContext,service.ShoppingCart"%> 
  4. > 
  5.  
  6.  
  7.  http-equiv="Content-Type" content="text/html; charset=GB18030"> 
  8. </strong>Insert title here<strong> title></strong> </li> <li><strong> head></strong> </li> <li><strong><body></strong> </li> <li> </li> <li><strong> body></strong> remote  </li> <li><strong><</strong>%  </li> <li>    Properties prop = new Properties();  </li> <li>    InitialContext ctx = new InitialContext();          </li> <li>    ShoppingCart shoppingCart = (ShoppingCart) ctx  </li> <li>        .lookup("ShoppingCartBean/local");  </li> <li>    shoppingCart.addCommodity("自行车");  </li> <li>    shoppingCart.addCommodity("笔记本电脑");  </li> <li>    shoppingCart.addCommodity("液晶电视");  </li> <li>    List<strong><String></strong> commodities = shoppingCart.getCommodity();  </li> <li>    for(String commodity: commodities)  </li> <li>    {  </li> <li>        System.out.println(commodity);  </li> <li>    }   </li> <li>%<strong>></strong> </li> <li><strong> html></strong> </li> </ol></pre> </td></tr></tbody></table><p> </p><p>访问本地接口要使用的jndi name应为“ShoppingCartBean/local”。<br />启动JBoss,在浏览器中输入如下的URL:<br />http://localhost:8080/JBossWeb/test.jsp<br />在Eclipse的Console中会输出如下的信息:</p><table cellspacing="0" cellpadding="2" width="400" border="1"> <tbody> <tr><td><pre><p> </p><pre> <ol> <li>16:55:17,633 INFO  [STDOUT] 自行车  </li> <li>16:55:17,633 INFO  [STDOUT] 笔记本电脑  </li> <li>16:55:17,633 INFO  [STDOUT] 液晶电视  </li> </ol></pre> </td></tr></tbody></table> <br> 网站名称:Eclipse+JBoss+EJB3使用SessionBean的本地接口 <br> 链接URL:<a href="https://tyhkzb.com/article/dhdjegj.html">https://tyhkzb.com/article/dhdjegj.html</a> </div> </div> <div class="othernews"> <h3>其他资讯</h3> <div class="othernews_list"> <ul> <li> <a href="/article/cdhcpje.html">优化数据库性能:调整监听参数 (数据库监听参数调整)</a> </li><li> <a href="/article/cdhcpge.html">MySQL FLUSH句法的实际应用</a> </li><li> <a href="/article/cdhcphd.html">集合属性的延迟加载</a> </li><li> <a href="/article/cdhcphi.html">高防cdn的优势有哪些</a> </li><li> <a href="/article/cdhcpgi.html">使用私有云存储有哪些好处呢</a> </li> </ul> </div> </div> </div> </div> <div class="footer"> <div class="footer_content"> <div class="footer_content_top clear"> <div class="content_top_share fl"> <div><img src="/Public/Home/img/logo.png"></div> <div class="top_share_content"> <dd>分享至:</dd> <dt class="bdsharebuttonbox clear" id="share"> <a href="#" class="bds_tsina iconfont fl" data-cmd="tsina" title="分享到新浪微博"></a> <a href="#" class="bds_sqq iconfont fl" data-cmd="sqq" title="分享到QQ好友"></a> <a href="#" class="bds_weixin iconfont fl" data-cmd="weixin" title="分享到微信"></a> <a href="#" class="bds_weixin iconfont fl" data-cmd="tieba" title="分享到贴吧"></a> </dt> <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script> </div> </div> <div class="content_top_left fl clear"> <div class="top_left_list fl"> <dd><a href="/about/">关于我们</a></dd> <dt> <a href="/about/#gsjj">公司简介</a> <a href="/about/#fzlc">发展历程</a> </dt> </div> <div class="top_left_list fl"> <dd><a href="/service/">服务项目</a></dd> <dt> <a href="/service/">高端网站建设</a> <a href="/miniprogram/">小程序开发</a> <a href="/service/app.html">APP开发</a> <a href="/service/yingxiao.html">网络营销</a> </dt> </div> <div class="top_left_list fl"> <dd><a href="/jianzhan/">建站知识</a></dd> <dt> <a href="/jianzhan/">行业新闻</a> <a href="/jianzhan/">建站学堂</a> <a href="/jianzhan/">常见问题</a> </dt> </div> <div class="top_left_list fl"> <dd><a href="/contact/">联系我们</a></dd> <dt> <a href="/contact/#lxwm">公司地址</a> <a href="/contact/#rczp">人才招聘</a> </dt> </div> </div> <div class="content_top_right addressR fr"> <div class="top_right_title addressf_title"> <a href="javascript:;" class="on">成都</a> <a href="javascript:;">大悟县</a> </div> <div class="top_right_content addressf"> <div class="right_content_li on"> <div class="right_content_list clear"> <dd class="fl iconfont"></dd> <dt class="fl">电话:028-86922220</dt> </div> <div class="right_content_list clear"> <dd class="fl iconfont"></dd> <dt class="fl">地址:成都市太升南路288号锦天国际A幢1002号</dt> </div> </div> <div class="right_content_li"> <div class="right_content_list clear"> <dd class="fl iconfont"></dd> <dt class="fl">电话:028-86922220</dt> </div> <div class="right_content_list clear"> <dd class="fl iconfont"></dd> <dt class="fl">地址:湖省孝感市大悟县城关镇鄂北物流城13栋125号</dt> </div> </div> </div> </div> </div> </div> <div class="footer_content_copyright clear">版权所有:大悟县疆括仕商贸有限公司 <a href="http://beian.miit.gov.cn/" rel="nofollow" target="_blank">鄂ICP备2025139637号-7</a> </div> </div> <!--浮窗--> <div class="FloatingWindow clear"> <a href="tencent://message/?uin=1683211881&Site=&Menu=yes" class="FloatingWindow_list fr"> <div class="FloatingWindow_list_title"> <dd class="iconfont"></dd> <dt><span>在线</span>咨询</dt> </div> </a> <a href="javascript:;" class="FloatingWindow_list fr"> <div class="FloatingWindow_list_title"> <dd class="iconfont"></dd> <dt>服务热线</dt> </div> <div class="FloatingWindow_list_down fadeInRight animated">服务热线:028-86922220</div> </a> <a href="javascript:;" class="FloatingWindow_list fr STop"> <div class="FloatingWindow_list_title"> <dd class="iconfont"></dd> <dt>TOP</dt> </div> </a> </div> <script src="/Public/Home/js/jquery-1.8.3.min.js"></script> <script src="/Public/Home/js/comm.js"></script> <script src="/Public/Home/js/wow.js"></script> <script src="/Public/Home/js/common.js"></script> </body> </html> <script> $(".cont img").each(function(){ var src = $(this).attr("src"); //获取图片地址 var str=new RegExp("http"); var result=str.test(src); if(result==false){ var url = "https://www.cdcxhl.com"+src; //绝对路径 $(this).attr("src",url); } }); window.onload=function(){ document.oncontextmenu=function(){ return false; } } </script>