·您的位置: 首页 » 资源教程 » 编程开发 » JAVA、JSP » Jboss Ejb3.0 Statefull Bean

Jboss Ejb3.0 Statefull Bean

类别: JAVA教程  评论数:0 总得分:0



这个例子结合了j2se5.0的generis新特性,可以先看下我写的J2se5.0 generis新特性



 































ShoppingCart.java











package org.jboss.tutorial.stateful.bean;



import javax.ejb.Remote;











import javax.ejb.Remove;



import java.util.HashMap;



@Remote











public interface ShoppingCart











{











   void buy(String product, int quantity);



   HashMap<String, Integer> getCartContents();



   @Remove void checkout();
















 


 



 



ShoppingCartBean.java











package org.jboss.tutorial.stateful.bean;



import javax.ejb.Remove;











import javax.ejb.Stateful;



import java.util.HashMap;











import java.io.Serializable;



@Stateful











public class ShoppingCartBean implements ShoppingCart, Serializable











{











   private HashMap<String, Integer> cart = new HashMap<String, Integer>();



   public void buy(String product, int quantity)











   {











      if (cart.containsKey(product))











      {











         int currq = cart.get(product);











         currq += quantity;











         cart.put(product, currq);











      }











      else











      {











         cart.put(product, quantity);











      }











   }



   public HashMap<String, Integer> getCartContents()











   {











      return cart;











   } 



   @Remove











   public void checkout()











   {











      System.out.println("To be implemented");











   }











}




 


 



 



Client.java











package org.jboss.tutorial.stateful.client; 



import org.jboss.tutorial.stateful.bean.ShoppingCart;



import javax.ejb.EJBException;











import javax.naming.InitialContext;



import java.rmi.NoSuchObjectException;











import java.util.HashMap;



















public class Client











{











   public static void main(String[] args) throws Exception











   {











      InitialContext ctx = new InitialContext();











      ShoppingCart cart = (ShoppingCart) ctx.lookup(ShoppingCart.class.getName());



      System.out.println("Buying 1 memory stick");











      cart.buy("Memory stick", 1);











      System.out.println("Buying another memory stick");











      cart.buy("Memory stick", 1);



      System.out.println("Buying a laptop");











      cart.buy("Laptop", 1);



      System.out.println("Print cart:");











      HashMap<String, Integer> fullCart = cart.getCartContents();











      for (String product : fullCart.keySet())











      {











         System.out.println(fullCart.get(product) + "     " + product);











      }



      System.out.println("Checkout");











      cart.checkout();



      System.out.println("Should throw an object not found exception by invoking on cart after @Remove method");











      try











      {











         cart.getCartContents();











      }











      catch (EJBException e)











      {











         if (e.getCausedByException() instanceof NoSuchObjectException)











            System.out.println("Successfully caught no such object exception.");











         else











            throw e;











      }











   }











}



 



这里附上log4j.properties 在jboss-EJB-3.0_Preview_5.zip 里面没有这个老是显示缺少appender。有了这个将在该目录下生成个record.log日志文件。



log4j.properties











log4j.appender.R=org.apache.log4j.RollingFileAppender











log4j.appender.R.File=record.log











log4j.appender.R.layout=org.apache.log4j.PatternLayout











log4j.appender.R.layout.ConversionPattern=%p  %d{hh:mm:ss} %t %c{1} -%m%n











log4j.appender.R.MaxBackupIndex=1











log4j.appender.R.MaxFileSize=100KB











log4j.appender.stdout.layout=org.apache.log4j.PatternLayout











log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) -%m%n











log4j.appender.stdout=org.apache.log4j.ConsoleAppender











log4j.rootLogger=stdout,R 



 



运行:参考installing.html











Windows下











打开命令提示符cmd,到  jboss_home/bin











 Run.bat –c all











用ant











先build后run 就行了。



 



讨论:











这里的问题也不大吧。主要是熟悉j2se5.0的generis .在写这篇文章和entity的时候











是学jboss-EJB-3.0_Preview_5.zip之后隔了一段时间写的,可能有些地方会不清楚。有问题可以发我邮箱rosonsandy@yahoo.com.cn,标题写csdn就行了,希望能做些什么。















-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:

纯粹空间 softpure.com
Copyright © 2006-2012 暖阳制作 版权所有
承接程序设计 网页设计
QQ: 15242663 (隐身在线 拒绝闲聊)  Email: faisun@sina.com

 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛  

百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1