沉睡森林@漂在北京

          本處文章除注明“轉(zhuǎn)載”外均為原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            152 隨筆 :: 4 文章 :: 114 評(píng)論 :: 0 Trackbacks
            做了一個(gè)ejb的小例子,開(kāi)始利用jboss5出現(xiàn)了問(wèn)題,后來(lái)?yè)Q了3的版本就好了。下面是代碼貼出來(lái),主要是別人的代碼改的,相信很多人都看過(guò)這個(gè)代碼了。
          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>
            

          下面是測(cè)試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 王總兵 閱讀(892) 評(píng)論(2)  編輯  收藏

          評(píng)論

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

          不然編譯和運(yùn)行都有問(wèn)題  回復(fù)  更多評(píng)論
            

          # re: 一個(gè)EJB的小例子[未登錄](méi) 2012-09-10 21:49 123
          感覺(jué)有問(wèn)題啊!
          Greet greet = home.create();//這里返回的是什么對(duì)象?
          System.out.println(greet.calculateMagic(123.456));//沒(méi)有任何實(shí)現(xiàn)類的接口如果能調(diào)用方法?  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 个旧市| 临泉县| 眉山市| 惠水县| 沾化县| 同仁县| 正宁县| 城市| 嵊州市| 会昌县| 汕头市| 洞口县| 金沙县| 四会市| 习水县| 安远县| 洮南市| 达日县| 云安县| 鸡西市| 乌鲁木齐县| 霍林郭勒市| 怀集县| 彰武县| 错那县| 吉安县| 万源市| 太谷县| 独山县| 班玛县| 苗栗县| 翁牛特旗| 绩溪县| 天长市| 茂名市| 来凤县| 孝昌县| 高密市| 靖宇县| 沁水县| 车致|