|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
这个例子分离了j2se5.0的generis新特征,能够先看下我写的J2se5.0generis新特征
ShoppingCart.java
packageorg.jboss.tutorial.stateful.bean;
importjavax.ejb.Remote;
importjavax.ejb.Remove;
importjava.util.HashMap;
@Remote
publicinterfaceShoppingCart
{
voidbuy(Stringproduct,intquantity);
HashMap<String,Integer>getCartContents();
@Removevoidcheckout();
}
ShoppingCartBean.java
packageorg.jboss.tutorial.stateful.bean;
importjavax.ejb.Remove;
importjavax.ejb.Stateful;
importjava.util.HashMap;
importjava.io.Serializable;
@Stateful
publicclassShoppingCartBeanimplementsShoppingCart,Serializable
{
privateHashMap<String,Integer>cart=newHashMap<String,Integer>();
publicvoidbuy(Stringproduct,intquantity)
{
if(cart.containsKey(product))
{
intcurrq=cart.get(product);
currq+=quantity;
cart.put(product,currq);
}
else
{
cart.put(product,quantity);
}
}
publicHashMap<String,Integer>getCartContents()
{
returncart;
}
@Remove
publicvoidcheckout()
{
System.out.println("Tobeimplemented");
}
}
Client.java
packageorg.jboss.tutorial.stateful.client;
importorg.jboss.tutorial.stateful.bean.ShoppingCart;
importjavax.ejb.EJBException;
importjavax.naming.InitialContext;
importjava.rmi.NoSuchObjectException;
importjava.util.HashMap;
publicclassClient
{
publicstaticvoidmain(String[]args)throwsException
{
InitialContextctx=newInitialContext();
ShoppingCartcart=(ShoppingCart)ctx.lookup(ShoppingCart.class.getName());
System.out.println("Buying1memorystick");
cart.buy("Memorystick",1);
System.out.println("Buyinganothermemorystick");
cart.buy("Memorystick",1);
System.out.println("Buyingalaptop");
cart.buy("Laptop",1);
System.out.println("Printcart:");
HashMap<String,Integer>fullCart=cart.getCartContents();
for(Stringproduct:fullCart.keySet())
{
System.out.println(fullCart.get(product)+""+product);
}
System.out.println("Checkout");
cart.checkout();
System.out.println("Shouldthrowanobjectnotfoundexceptionbyinvokingoncartafter@Removemethod");
try
{
cart.getCartContents();
}
catch(EJBExceptione)
{
if(e.getCausedByException()instanceofNoSuchObjectException)
System.out.println("Successfullycaughtnosuchobjectexception.");
else
throwe;
}
}
}
这里附上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–call
用ant
先build后run就好了。
会商:
这里的成绩也不年夜吧。次要是熟习j2se5.0的generis.在写这篇文章和entity的时分
是学jboss-EJB-3.0_Preview_5.zip以后隔了一段工夫写的,大概有些中央会不分明。有成绩能够发我邮箱rosonsandy@yahoo.com.cn,题目写csdn就好了,但愿能做些甚么。
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。 |
|