<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    風雨無阻

    (轉)jboss部署ejb

    開發sessionbean EJB最少也需要三個class,remote interface,home interface,and bean implementation(bean行為).

    1. remote interface 用來揭示EJB對外的一些方法.

    package helloWorld; import javax.ejb.EJBObject;
    import java.rmi.RemoteException;
    public interface RemoteHello extends EJBObject
    { public String HelloEcho(String inputString) throws RemoteException; }
    2.home interface 是用來規定怎樣創建一個實現remote interface的bean.
    package helloWorld;
    import java.io.Serializable;
    import java.rmi.RemoteException;
    import javax.ejb.CreateException;
    import javax.ejb.EJBHome;
    public interface HomeHello extends EJBHome

    { RemoteHello create() throws RemoteException, CreateException; }

    3.bean implementation 是提供方法的實現,這些方法在上述兩種interface中都有規定了.

    package helloWorld;

    import java.rmi.RemoteException;

    import javax.ejb.SessionBean;

    import javax.ejb.SessionContext;

    public class HelloBean implements SessionBean{

       public String HelloEcho(String inputString) {

         System.out.println("Someone called 'Hello Echo Successed!'");

         return "*********" + inputString + "*********"; }

         /** Empty method body  */

         public void ejbCreate() {

            System.out.println("Ejb 4 is creating!...");}

         /** Every ejbCreate() method ALWAYS needs a corresponding   ejbPostCreate () method with exactly the same parameter types.   */

    public void ejbPostCreate() {}

    /** Empty method body   */

    public void ejbRemove() {

        System.out.println("Ejb 4 is removing!...");}

     /** Empty method body */

    public void ejbActivate() {

       System.out.println("Ejb 4 is activating!...");}

    /** Empty method body */

    public void ejbPassivate()

     {}

    /** Empty method body   */

    public void setSessionContext(SessionContext sc)

     {}

    }

    部署jar

    這些classes必須打包進一個JAR文件中,JAR文件中包含了目錄結構和包的層次.在本例中, 這些classes是在包helloworld,這樣他們需要在目錄helloWorld/ 下.

    部署發布描述器ejb-jar.XML和jboss.xml
    在JAR文檔創建之前,還需要一個叫META-INF的目錄,這是存放部署發布描述器的(一般叫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>Neosue Helloworld Sample Application</description>
     <display-name>Helloworld EJB</display-name>
     <enterprise-beans>
      <session>
       <ejb-name>Helloworld</ejb-name>
       <!-- home interface -->
       <home>helloWorld.HomeHello</home>
       <!-- remote interface -->
       <remote>helloWorld.RemoteHello</remote>
       <!-- bean implementation -->
       <ejb-class>helloWorld.HelloBean</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"?>
    <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "
    http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
    <jboss>
     <enterprise-beans>
      <session>
       <ejb-name>Helloworld</ejb-name>
       <jndi-name>Helloworld/Hello</jndi-name>
      </session>
     </enterprise-beans>
    </jboss>
    雖然有了上面你的應用程序和JNDI name的梆定,但是一旦部署發布到JBoss服務器上,你還需要一個jndi.properties文件,以告訴調用你程序的客戶端請求到哪里去初始化JNDI naming service.

    測試程序:

    import javax.naming.Context;

    import javax.naming.InitialContext;

    import javax.rmi.PortableRemoteObject;

    import helloWorld.*;

    public class MyTest {

       public static void main(String[] args) {

          try{ Context ctx=new InitialContext();

               Object ref=ctx.lookup("Helloworld/Hello");

               HomeHello home=(HomeHello)PortableRemoteObject.narrow(ref,HomeHello.class);

               RemoteHello user=home.create(); System.out.println(user.HelloEcho("So easy!"));

            }catch(Exception e) {

              e.printStackTrace();

            }

       }

    }

    Jboss EJB 部署步驟 建立 remote interface-->home interface-->and bean implementation--> ejb-jar.xml-->jboss.xml--打包(package[jar cvf packageName.jar .])-->復制到jboss deploy目錄.

    ---------------------------------------------------------
    原文 URL
    http://blog.blogchina.com/refer.159508.html
    ---------------------------------------------------------
    補充說明如下:

    OS: windows 2000;
    JDK: 1.5.0rc;
    JBoss: 4.0

    HelloWorld.jar
    |--META-INF
    |      |--jboss.xml
    |      |--ejb-jar.xml
    |      |--MANIFEST.MF (自動生成)
    |--helloWorld
           |--RemoteHello.class
           |--jndi.properties
           |--HomeHello.class
           |--HelloBean.class


    其中 測試文件 MyTest.class 同目錄拷貝一份 jndi.properties 文件過來.

    jndi.properties 的內容如下:

    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.provider.url=localhost:1099
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

    posted on 2008-03-30 19:38 秋楓故事 閱讀(1054) 評論(0)  編輯  收藏


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


    網站導航:
     
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    新聞檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费无码午夜福利片69| 亚洲AV无码专区在线播放中文| 亚洲娇小性xxxx| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲av伊人久久综合密臀性色| a视频在线免费观看| 亚洲人成在线播放网站| 在线观看黄片免费入口不卡| 亚洲色无码专区在线观看| a级毛片100部免费观看| 久久精品国产亚洲av麻| 24小时免费看片| 色老板亚洲视频免在线观| 青青久在线视频免费观看| 中文无码亚洲精品字幕| 好男人视频在线观看免费看片 | 久久九九久精品国产免费直播| 亚洲精品和日本精品| 中文无码日韩欧免费视频| 无码欧精品亚洲日韩一区| 国产免费女女脚奴视频网| 亚洲一卡一卡二新区无人区| 国产色爽女小说免费看| 九九免费观看全部免费视频| 亚洲国产精品无码久久一线| 亚洲免费在线观看视频| 亚洲男同gay片| 久久久久噜噜噜亚洲熟女综合| 毛片免费在线观看| 精品丝袜国产自在线拍亚洲| 国产一区二区三区免费视频| 最近免费中文字幕中文高清| 91嫩草亚洲精品| 四虎永久在线精品视频免费观看| 国产自国产自愉自愉免费24区| 亚洲午夜成激人情在线影院| 亚洲第一黄色网址| 一级做性色a爰片久久毛片免费| 国产精品亚洲片在线| 毛片免费全部免费观看| a级毛片免费高清视频|