<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 秋楓故事 閱讀(1053) 評論(0)  編輯  收藏


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


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

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    新聞檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产亚洲婷婷香蕉久久精品| 亚洲人成网站影音先锋播放| 18禁在线无遮挡免费观看网站| 亚洲AV无码成人专区片在线观看| 91精品国产免费入口| 亚洲日本一线产区和二线产区对比| 亚洲日韩国产精品乱| 日本免费网站视频www区| 黄色毛片视频免费| 亚洲一区二区三区四区在线观看| 永久免费AV无码网站在线观看| 男女一进一出抽搐免费视频| 亚洲国产成人无码av在线播放| 亚洲精品无码av天堂| 亚洲最大免费视频网| 免费一区二区三区在线视频| 337p日本欧洲亚洲大胆艺术| 国产人成免费视频| 日本一卡精品视频免费| 美女尿口扒开图片免费| 亚洲宅男天堂a在线| 在线观看午夜亚洲一区| 97无码免费人妻超级碰碰碰碰| 国产精品成人啪精品视频免费| 亚洲人成77777在线播放网站不卡| 亚洲中文久久精品无码ww16| 性感美女视频在线观看免费精品 | 午夜国产羞羞视频免费网站| 日韩人妻无码精品久久免费一| 无人视频在线观看免费播放影院| 91情国产l精品国产亚洲区| 亚洲午夜无码AV毛片久久| 99久久免费精品国产72精品九九 | 性色午夜视频免费男人的天堂| 色婷婷综合缴情综免费观看| 国产亚洲福利在线视频| 亚洲高清免费在线观看| 亚洲老妈激情一区二区三区| 亚洲精品色婷婷在线影院 | 亚洲欧洲日产v特级毛片| 久久久青草青青亚洲国产免观|