開發具有本地接口的無狀態bean

開發具有本地接口的無狀態bean

 

 

   我們需要了解以下通過遠程接口調用EJB的過程,首先客戶端需要與EJB建立起 socket通信,在通信官道上他們之間需要來回

發送IIOP協議消息,因爲數據要    在網絡進行傳輸,存放數據的java對象必須要進行序列化。
   
    在這個過程中 我們看到,有網絡通信的開銷,協議解析的開銷,對象序列化的開銷。    因爲ejb是分佈式技術,它允許客戶端

與EJB應用在不同一機器上面,所以這些性能開銷    也是必然的。但是在實際生產中,我們不可避免這種情況,客戶端與EJB應用

運行在同一   個JBOSS中,那麼,這個時候客戶端是否還有必要跟EJB之間走上面的網絡通信呢?    據我們所知,這個時候的客

戶端與EJB是在同一個JVM內,他們之間完全可以通過內存    進行交互,如果這樣的話,完全可以避免上面流程的開銷。所以引入

了本地接口    通過本地接口調用EJB,直接在內存交互,這樣就可以避免因網絡通信所造成的各種性能開銷。


    但是有一點,大家必須要注意的,只有客戶端與EJB應用都在同一個JVM內運行的時候 ,我們才能調用本地接口,否則只能

調用遠程接口。    簡單的理解 ,只要客戶端與EJB發佈在同一個JBOSS內,我們就認爲他們在同一個JVM
   
   

 接口

 package com.launch.out;

      public interface HelloWord {
     public String say(String name);
       }

實現

 

    package com.launch.impl;
         
          import javax.ejb.Remote;
          import javax.ejb.Stateless;
         
          import com.launch.out.HelloWord;
          @Stateless

        //默認就是Local
          @Local(HelloWord.class) 
          public class HelloWordBean implements HelloWord {

        //@EJB Other other;   可以注入其他ejb對象 ,若果有多個是實現可以指定名稱
       //  @Resource TimerService timeService 注入其他服務

        // @Resource (mappedName="java:test") DataSource dataSource; 注入數據源
           public String say(String name) {
            
            return name+"how are you .";
           }
         
          }

 

    打包成jar文件發佈到jboss下
          
      jsp 調用
          需要打包war文件發佈同一個jboss下
          
    import="com.launch.out.HelloWord, javax.naming.*, java.util.Properties"%>
   <%
  Properties props = new Properties();
  props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
  props.setProperty("java.naming.provider.url", "localhost:1099");
  try {
   InitialContext ctx = new InitialContext(props);
   HelloWord helloworld = (HelloWord) ctx.lookup("HelloWordBean/local");
   out.println(helloworld.say("how are you "));
  } catch (NamingException e) {
   out.println(e.getMessage());
  }

發佈了35 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章