快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Jboss Ejb3.0 Statefull Bean




这个例子结合了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就行了,希望能做些什么。
















返回类别: 教程
上一教程: 一个经典的JAVA APPLET时钟程序(一)
下一教程: struts中文乱码问题解决

您可以阅读与"Jboss Ejb3.0 Statefull Bean"相关的教程:
· Jboss Ejb3.0 Entity Bean
· JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(1)
· JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(4)
· Jboss Ejb3.0 Interceptor
· JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(3)
    微笑服务 优质保证 索取样品