基于J2EE规范的中间件——EJB开发实例2
前言
??? 上篇講解了EJB開發(fā)的簡單實(shí)例,我們對EJB也有了簡單的認(rèn)識,下面咱們對EJB進(jìn)行繼續(xù)的深入學(xué)習(xí)。
?
正題
?? 今天講解的實(shí)例就是有狀態(tài)和無狀態(tài)的Ejb,所需的步驟跟上一篇講解的一樣,一個服務(wù)端項(xiàng)目,一個客戶端項(xiàng)目.
?? 1.服務(wù)端(EJB項(xiàng)目):
????? 接口類:
???? 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(); }
?
????? 實(shí)現(xiàn)類:
??? 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());} }???? 執(zhí)行結(jié)果:0 1 2 3 0 1 2 3
???? StatelessEjbClient的main方法:
????? 執(zhí)行結(jié)果:0 1 2 3 4 5 6 7
?
??? 通過觀察兩個客戶端的執(zhí)行結(jié)果我們就可以知道有狀態(tài)和無狀態(tài)的區(qū)別,有狀態(tài)Bean可以保持記錄每一個Bean的狀態(tài),而無狀態(tài)Bean則不能。
?
???
?
總結(jié)
以上是生活随笔為你收集整理的基于J2EE规范的中间件——EJB开发实例2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flash打造佛光效果实例教程
- 下一篇: 37.伪造参数错误的ICMP数据包