日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于J2EE规范的中间件——EJB开发实例2

發布時間:2024/8/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于J2EE规范的中间件——EJB开发实例2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

??? 上篇講解了EJB開發的簡單實例,我們對EJB也有了簡單的認識,下面咱們對EJB進行繼續的深入學習。

?

正題

?? 今天講解的實例就是有狀態和無狀態的Ejb,所需的步驟跟上一篇講解的一樣,一個服務端項目,一個客戶端項目.

?? 1.服務端(EJB項目):

????? 接口類:

???? StatefulEjb.java:

package com.tgb.ejb;public interface StatefulEjb {public void compute(int i);public int getResult(); }


?

???? StatelessEjb.java:

package com.tgb.ejb;public interface StatelessEjb {public void compute(int i);public int getResult(); }


?

????? 實現類:

??? StatefulEjbBean.java:

package com.tgb.ejb;import javax.ejb.Remote; import javax.ejb.Stateful;@Stateful @Remote public class StatefulEjbBean implements StatefulEjb {private int state;@Overridepublic void compute(int i) {state = state + i;}@Overridepublic int getResult() {return state;} }


?

??? StatelessEjbBean.java:

package com.tgb.ejb;import javax.ejb.Remote; import javax.ejb.Stateless;@Stateless @Remote public class StatelessEjbBean implements StatelessEjb {private int state;@Overridepublic void compute(int i) {state = state + i;}@Overridepublic int getResult() {return state;} }


?? 2.客戶端:

????? 引入jar包:

???? 引入接口StatefulEjb和StatelessEjbjar包還有jboss的client包,還有配置jndi配置文件。

?

?? 編寫main方法:

?????StatefulEjbClient的main方法:

??

package com.tgb.ejb;import javax.naming.InitialContext;public class StatefulEjbClient {public static void main(String[] args) throws Exception{InitialContext context = new InitialContext();//第一次會話StatefulEjb ejb1 = (StatefulEjb)context.lookup("StatefulEjbBean/remote");System.out.println(ejb1.getResult());ejb1.compute(1);System.out.println(ejb1.getResult());ejb1.compute(1);System.out.println(ejb1.getResult());ejb1.compute(1);System.out.println(ejb1.getResult());//第二次會話StatefulEjb ejb2 = (StatefulEjb)context.lookup("StatefulEjbBean/remote");System.out.println(ejb2.getResult());ejb2.compute(1);System.out.println(ejb2.getResult());ejb2.compute(1);System.out.println(ejb2.getResult());ejb2.compute(1);System.out.println(ejb2.getResult());} }

???? 執行結果:0 1 2 3 0 1 2 3


???? StatelessEjbClient的main方法:

package com.tgb.ejb;import javax.naming.InitialContext;public class StatelessEjbClient {public static void main(String[] args) throws Exception{InitialContext context = new InitialContext();//第一次會話StatelessEjb ejb1 = (StatelessEjb)context.lookup("StatelessEjbBean/remote");System.out.println(ejb1.getResult());ejb1.compute(1);System.out.println(ejb1.getResult());ejb1.compute(1);System.out.println(ejb1.getResult());ejb1.compute(1);System.out.println(ejb1.getResult());//第二次會話StatelessEjb ejb2 = (StatelessEjb)context.lookup("StatelessEjbBean/remote");System.out.println(ejb2.getResult());ejb2.compute(1);System.out.println(ejb2.getResult());ejb2.compute(1);System.out.println(ejb2.getResult());ejb2.compute(1);System.out.println(ejb2.getResult());System.out.println("ejb1 == ejb2 ? : " + (ejb1 == ejb2));} }

????? 執行結果:0 1 2 3 4 5 6 7

?

??? 通過觀察兩個客戶端的執行結果我們就可以知道有狀態和無狀態的區別,有狀態Bean可以保持記錄每一個Bean的狀態,而無狀態Bean則不能。

?

???

?

總結

以上是生活随笔為你收集整理的基于J2EE规范的中间件——EJB开发实例2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。