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

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

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

    HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

    知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

      BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks

     

     EJB client調用EJB3 ()

    當你的EJB3deploy to jboss的情況下,ejb client調用EJB3分兩種情況:

    1)      發布在jbossweb app作為client來調用EJB

    EJB和調用EJBWEB 應用都發布在Jboss 集成環境下。在Jboss下發布WEB 應用,需要把WEB 應用打包成war 文件。另外在此環境下調用EJB 不需要把EJB 的接口類放入/WEB-INF/classes/目錄中,否則在調用Stateful Bean 就會發生類型沖突,引發下面的例外

    java.lang.ClassCastException: $Proxy84

    org.apache.jsp.StatefulBeanTest_jsp._jspService(org.apache.jsp.StatefulBeanTest_jsp:55)

    如果EJB和調用EJBWEB 應用都發布在Jboss 集成環境下,那么EJBLocalRemote接口都可以被調用

    發布在Jboss 下的客戶端不需要明確設置JNDI 訪問的上下文環境,可以直接通過

    InitialContext ctx = new InitialContext()

    獲得上下文環境,容器會自動賦給InitialContext 正確的環境,例如:

    InitialContext ctx = new InitialContext();//客戶端和jboss運行在同一個jvm,不需要傳入props

    HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");

    如果硬給InitialContext 設置了訪問屬性,反而會帶來不可移植的問題,因為你的應用有可能部署在weblogic 等應用服務器。(本教程考慮到部分同學可能需要在獨立的J2se 中調用EJB,為了教學的方便,把訪問屬性都設上了,這樣不管在jbossj2se 或獨立tomcat,都能獲得正確的InitialContext

    2)      在單獨的TomcatJ2SE(如junit test)中調用EJB

    在正式的生產環境下,大部分調用EJB 的客戶端可能是單獨的Tomcat Resin。下面介紹如何在單獨的Tomcat服務器中調用EJB在單獨的Tomcat 服務器中調用EJB 需要有以下步驟

    A)                    把調用EJB 所依賴的Jar 包拷貝到tomcat 下的/shared/lib 目錄或WEB 應用的WEB-INF/lib,所依賴的Jarjboss 安裝目錄的client目錄下。你可以在eclipse里設置一個自定義的library “ejb3 library”,把這些jars都添加到該library里,然后在你的EJB project里把“ejb3 library” add to classpath

    B)                     EJB 接口拷貝到應用的/WEB-INF/classes/目錄下

    C)                     客戶端訪問EJB 時必須明確設置InitialContext 環境屬性,代碼如下:

    Properties props = new Properties();

    props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");

    props.setProperty("java.naming.provider.url", "localhost:1099");

    props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");

    InitialContext ctx = new InitialContext(props);//客戶端和jboss運行在同一個jvm,不需要傳入props

    HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");

    Tip: 除了上面通過硬編碼設置環境屬性的方式外,還可以在應用的classpath 下放置一個jndi.properties 文件

    注意:在單獨的tomcatJ2SE里不能調用EJB Local 接口,因為他與JBOSS 不在同一個VM 中。J2se中調用EJB3 同樣需要把上述jar EJB 接口放置在應用的類路徑下。(如果是JBoss,則需要把JBoss_HOME/client下的 jbossall-client.jar jnp_client.jar引入到你的工程里)

     


    </script>

    posted on 2008-06-02 15:18 helloworld2008 閱讀(646) 評論(1)  編輯  收藏 所屬分類: java - ejb3

    評論

    # re: EJB client調用EJB3 (轉) http://jalyspace.spaces.live.com/blog/cns!BBFE3C83B4EE964B!223.entry 2008-11-25 15:31
    你太有才啦~  回復  更多評論
      

    主站蜘蛛池模板: 每天更新的免费av片在线观看| 国产精品视频全国免费观看| 蜜臀98精品国产免费观看| 亚洲国产第一站精品蜜芽| 两性色午夜视频免费网| 黑人精品videos亚洲人| 中文字幕无码日韩专区免费| 亚洲av无码一区二区三区乱子伦| 99免费在线视频| 亚洲AV日韩AV永久无码免下载 | 亚洲片国产一区一级在线观看| 自拍偷自拍亚洲精品偷一| 国产一区二区免费在线| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 免费看大黄高清网站视频在线| mm1313亚洲国产精品无码试看| 亚洲不卡AV影片在线播放| aa级毛片毛片免费观看久| 久久亚洲精品AB无码播放| 久久久久久精品成人免费图片 | 日韩精品免费一线在线观看| 久久久久无码专区亚洲av| 可以免费观看的毛片| 亚洲成a人片7777| 日产乱码一卡二卡三免费| 一级中文字幕乱码免费| 亚洲人成电影在线天堂| 亚洲精品国偷自产在线| 久99久精品免费视频热77| 亚洲人成在线中文字幕| 国产一区二区三区免费视频| 最近国语视频在线观看免费播放 | 中中文字幕亚洲无线码| 国产精品久久免费视频| a级毛片高清免费视频| 亚洲熟妇av一区二区三区下载| 国产美女a做受大片免费| 永久免费av无码网站yy| 国产亚洲精品成人AA片| 在线A亚洲老鸭窝天堂| 国产成人免费网站|