沉睡森林@漂在北京

          本處文章除注明“轉載”外均為原創,轉載請注明出處。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            152 隨筆 :: 4 文章 :: 114 評論 :: 0 Trackbacks
            做了一個ejb的小例子,開始利用jboss5出現了問題,后來換了3的版本就好了。下面是代碼貼出來,主要是別人的代碼改的,相信很多人都看過這個代碼了。
          package com.myejb.greet;

          import java.rmi.RemoteException;

          import javax.ejb.EJBObject;

          public interface Greet extends EJBObject{
              
          public double calculateMagic(double seed) throws RemoteException;
          }


          package com.myejb.greet;

          import javax.ejb.SessionBean;
          import javax.ejb.SessionContext;

          public class GreetBean implements SessionBean {
              
              
          private static final long serialVersionUID = 6729996959104578698L;

              
          public double calculateMagic(double seed) {
                  System.out.println(
          "Someone called `calculateMagic!'");
                  
          return seed * Math.random();
              }

              
          public GreetBean() {
              }

              
          public void ejbCreate() {
                  System.out.println(
          "Create Greet EJB.");
              }

              
          public void ejbRemove() {
                  System.out.println(
          "Remove Greet EJB.");
              }

              
          public void ejbActivate() {
                  System.out.println(
          "Activate Greet EJB");
              }

              
          public void ejbPassivate() {
                  System.out.println(
          "Passivate Greet EJB");
              }

              
          /**
               * Set context for `Greet' EJB
               
          */
              
          public void setSessionContext(SessionContext sc) {
                  System.out.println(
          "Set context for Greet EJB");
              }
          }


          package com.myejb.greet;

          import java.rmi.RemoteException;

          import javax.ejb.CreateException;
          import javax.ejb.EJBHome;

          public interface GreetHome extends EJBHome {
              Greet create() 
          throws RemoteException, CreateException;
          }


          下面是META-INF下面的XML配置文件:
          ejb-jar.xml
          <?xml version="1.0" encoding="UTF-8"?> 
          <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> 
          <ejb-jar>
              
          <description>jBoss test application </description>
              
          <display-name>Test</display-name>
              
          <enterprise-beans>
                  
          <session>
                      
          <ejb-name>GreetEJB</ejb-name>
                      
          <home>com.myejb.greet.GreetHome</home>
                      
          <remote>com.myejb.greet.Greet</remote>
                      
          <ejb-class>com.myejb.greet.GreetBean</ejb-class>
                      
          <session-type>Stateless</session-type>
                      
          <transaction-type>Bean</transaction-type>
                  
          </session>
              
          </enterprise-beans>
          </ejb-jar>

          jboss.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <jboss>
              
          <enterprise-beans>
                  
          <session>
                      
          <ejb-name>GreetEJB</ejb-name>
                      
          <jndi-name>GreetingEJB</jndi-name>
                  
          </session>
                  
          <secure>false</secure>
              
          </enterprise-beans>
          </jboss>
            

          下面是測試java類:
          import java.util.Hashtable;

          import javax.naming.Context;
          import javax.naming.InitialContext;
          import javax.rmi.PortableRemoteObject;

          import com.myejb.greet.Greet;
          import com.myejb.greet.GreetHome;

          public class TestMain {

              
          /**
               * 
          @param args
               
          */
              @SuppressWarnings(
          "unchecked")
              
          public static void main(String[] args) {
                  Hashtable env 
          = new Hashtable();
                  env.put(Context.INITIAL_CONTEXT_FACTORY, 
          "org.jnp.interfaces.NamingContextFactory");
                  env.put(Context.URL_PKG_PREFIXES, 
          "org.jboss.naming");
                  env.put(Context.PROVIDER_URL, 
          "localhost:1099");

                  
          try {
                      Context jndiContext 
          = new InitialContext(env);
                      System.out.println(
          "Got context");
                      Object ref 
          = jndiContext.lookup("GreetingEJB");
                      System.out.println(
          "Got reference");
                      GreetHome home 
          = (GreetHome) PortableRemoteObject.narrow(ref, GreetHome.class);
                      Greet greet 
          = home.create();
                      System.out.print(
          "The magic number from server is ");
                      System.out.println(greet.calculateMagic(
          123.456));
                  } 
          catch (Exception ex) {
                      ex.printStackTrace();
                  }
              }
          }


          posted on 2009-03-11 13:51 王總兵 閱讀(894) 評論(2)  編輯  收藏

          評論

          # re: 一個EJB的小例子 2009-03-11 13:52 王兵
          注意需要把C:\Program Files\jboss-3.2.5\client這個目錄下面的一些關于client的jar包考到client的測試環境下

          不然編譯和運行都有問題  回復  更多評論
            

          # re: 一個EJB的小例子[未登錄] 2012-09-10 21:49 123
          感覺有問題啊!
          Greet greet = home.create();//這里返回的是什么對象?
          System.out.println(greet.calculateMagic(123.456));//沒有任何實現類的接口如果能調用方法?  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 西吉县| 岗巴县| 金溪县| 万山特区| 望谟县| 白城市| 读书| 巴林右旗| 涡阳县| 兴仁县| 攀枝花市| 邯郸市| 锡林浩特市| 延庆县| 商都县| 襄垣县| 奇台县| 乐至县| 简阳市| 菏泽市| 怀宁县| 南和县| 仁怀市| 淳安县| 土默特右旗| 融水| 蒲江县| 平泉县| 东兴市| 五大连池市| 镶黄旗| 赤壁市| 中宁县| 涡阳县| 达州市| 田东县| 嘉义市| 西丰县| 睢宁县| 巢湖市| 凌海市|