Cool eye

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            63 Posts :: 4 Stories :: 3 Comments :: 0 Trackbacks
           

           

          總結構:

           

          J2EE應用/
          |__EJB組件/(haiejb.jar)
          |  |__META-INF/
          |  |  |__ejb-jar.xml
          |  |  |__jboss.xml
          |  |__ejbs/
          |     |__HaiHome.class
          |     |__HaiClient.class
          |     |__HaiBean.class
          |__WEB應用/(haiejb.war)
          |  |__haiejb.jsp
          |  |__WEB-INF/
          |     |__web.xml
          |     |__jboss-web.xml
          |__META-INF/ 
             |__application.xml

           

          一、編譯java文件為EJB類文件

           

          java文件編譯:

          [假定在系統環境變量的CLASSPATH中包含了javax.ejb.*包,該包可以在以下地方找:

          JBOSS_HOME\server\default\lib\jboss-j2ee.jar

          JBOSS_HOME\client\jboss-j2ee.jar]

           

          [java源文件目錄]>:javac -classpath %classpath% -d [輸出目錄:EJB組件目錄] *.java

           

          HaiHome.java:

          package ejbs;

          import java.io.Serializable;
          import java.rmi.*;
          import javax.ejb.*;

          public interface HaiHome extends EJBHome {
              HaiClient create() throws RemoteException, CreateException;  
          }

           

          HaiClient.java:

          package ejbs;

          import javax.ejb.*;
          import java.rmi.RemoteException;

          public interface HaiClient extends EJBObject {
              public String sayHai() throws RemoteException;  
          }

           

          haiBean.java:

          package ejbs;

          import javax.ejb.*;
          import javax.naming.*;

          public class HaiBean implements SessionBean {
              public String sayHai() {
                  return "Hai, EJB technology!";  
              } 
              public void ejbCreate() throws EJBException {}
              public void ejbRemove() throws EJBException {}
              public void ejbPassivate() {}
              public void ejbActivate() {}
              public void setSessionContext(SessionContext sc) {}
          }

           

           

          二、創建EJB組件:

           

          haiejb.jar:(EJB組件)

          打包命令:[EJB組件目錄]>:jar cvf haiejb.jar META-INF/ ejbs/

          |__META-INF/

          |  |__ejb-jar.xml

          |  |__jboss.xml

          |__ejbs/

             |__HaiHome.class

             |__HaiClient.class

             |__HaiBean.class

           

           

          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>Hai EJB instance.</description>
              <display-name>Hai EJB</display-name>
              <enterprise-beans>
                  <session>
                      <ejb-name>HaiEJB</ejb-name>
                      <home>ejbs.HaiHome</home>
                      <remote>ejbs.HaiClient</remote>
                      <ejb-class>ejbs.HaiBean</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>HaiEJB</ejb-name>
                      <jndi-name>HaiEJB</jndi-name>
                  </session>
              </enterprise-beans>
          </jboss>       

           

           

          三、創建WEB應用

           

          haiejb.war:(WEB應用)

          打包命令:[WEB應用目錄]>:jar cvf haiejb.war haiejb.jsp WEB-INF/

          |__haiejb.jsp

          |__WEB-INF/

             |__web.xml

             |__jboss-web.xml

           

          haiejb.jsp:

          <%@ page contentType="text/html;charset=GBK" %>
          <%@ page import="ejbs.*,javax.ejb.*,javax.naming.*,javax.rmi.PortableRemoteObject,java.rmi.RemoteException" %>

          <html>
          <body>
              <%
              String message = "nothing!";
                 try {
                      InitialContext ic = new InitialContext();
                      Object objRef = ic.lookup("HaiEJB");
                      HaiHome home = (HaiHome) PortableRemoteObject.narrow(objRef,ejbs.HaiHome.class);
                      HaiClient haiRemote = home.create();
                      message = haiRemote.sayHai();
                 } catch (RemoteException re) {
                      re.printStackTrace();
                 } catch (CreateException ce) {
                      ce.printStackTrace();
                 } catch (NamingException ne) {
                      ne.printStackTrace();
                 }
              %>
             
              <h1><%=message%></h1>
          </body>
          </html>

           

          web.xml:

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>

          <web-app>
              <ejb-ref>
                  <ejb-ref-name>HaiEJB</ejb-ref-name>
                  <ejb-ref-type>Session</ejb-ref-type>
                  <home>ejbs.HaiHome</home>
                  <remote>ejbs.HaiClient</remote>
              </ejb-ref>
          </web-app>

           

          jboss-web.xml:

          <?xml version="1.0" encoding="UTF-8"?>
          <jboss-web>
              <ejb-ref>
                  <ejb-ref-name>HaiEJB</ejb-ref-name>
                  <jndi-name>HaiEJB</jndi-name>
              </ejb-ref>
          </jboss-web>

           

           

          四、創建J2EE應用程序

           

          haiejb.ear: (J2EE應用程序)

          把上面創建的haiejb.jar和haiejb.war包拷貝到你創建的J2EE應用主目錄,新建一個META-INF目錄并在里面創建application.xml文件:

          打包命令:[J2EE應用目錄]>:jar cvf haiejb.ear haiejb.jar haiejb.war META-INF/

          |__haiejb.jar

          |__haiejb.war

          |__META-INF/

             |__application.xml

           

          application.xml:

          <?xml version="1.0" encoding="UTF-8"?>

          <application>
              <display-name>HaiEJB J2EE Application</display-name>
              <module>
                  <web>
                      <web-uri>haiejb.war</web-uri>
                      <context-root>/haiejb</context-root>
                  </web>
              </module>
              <module>
                  <ejb>haiejb.jar</ejb>
              </module>
          </application>     

           

           

          五、部署J2EE應用:

           

           

          把haiejb.ear拷貝到

          JBOSS_HOME\server\default\deploy\

          啟動jboss 4.0,注意命令行窗口中有無異常,如果有異常情況,請查看log文件:

          JBOSS_HOME\server\default\log\server.log

          從中查找分析問題所在,然后改正之,直到無異常顯示

           

          最后在瀏覽器地址欄中鍵入:

          http://localhost:8080/haiejb/haiejb.jsp

           

          結果:

           

          Hai, EJB technology!               

          posted on 2006-02-06 13:19 joeyeezhang 閱讀(309) 評論(0)  編輯  收藏 所屬分類: EJB

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


          網站導航:
           
          主站蜘蛛池模板: 渭源县| 梁山县| 青川县| 深州市| 泽库县| 彭州市| 山东| 无为县| 开江县| 贡嘎县| 达拉特旗| 长兴县| 富顺县| 四会市| 英山县| 福贡县| 三台县| 肥城市| 晋城| 苗栗县| 威远县| 利辛县| 阿坝| 东兰县| 临沂市| 杭锦旗| 清镇市| 原阳县| 栾城县| 永州市| 溧水县| 民和| 建德市| 彝良县| 安达市| 上高县| 肥城市| 从化市| 万宁市| 江安县| 革吉县|