BEAN:
package sharetrading_application;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.CreateException;
public class ShareTradingBean implements SessionBean {
String customer;
static int numberOfShare_ZSH=5000;
static int numberOfShare_QDPJ=6000;
static int numberOfShare_WFJBH=8000;
SessionContext sessionContext;
public void ejbCreate(String name) throws CreateException {
customer=name;
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
public void buyShare(String name, String shareName, int number) {
if(shareName.equals("000931")){
numberOfShare_ZSH=getShare(shareName)+number;
}
else if(shareName.equals("600600")){
numberOfShare_QDPJ=getShare(shareName)+number;
}
else{
numberOfShare_WFJBH=getShare(shareName)+number;
}
}
public void sellShare(String name, String shareName, int number) {
if(shareName.equals("000931")){
numberOfShare_ZSH=getShare(shareName)-number;
}
else if(shareName.equals("600600")){
numberOfShare_QDPJ=getShare(shareName)-number;
}
else{
numberOfShare_WFJBH=getShare(shareName)-number;
}
}
public int getShare(String shareName) {
if(shareName.equals("000931")){
return numberOfShare_ZSH;
}
else if(shareName.equals("600600")){
return numberOfShare_QDPJ;
}
else if(shareName.equals("600859")){
return numberOfShare_WFJBH;
}else{
return numberOfShare_ZSH+numberOfShare_QDPJ+numberOfShare_WFJBH;
}
}
}
测试BEAN下
package sharetrading_application;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import java.lang.String;
import java.util.Properties;
import java.io.*;
import javax.ejb.*;
public class ShareTradingTestClient1 {
private static final String ERROR_NULL_REMOTE = "Remote interface reference is null. It must be created by calling one of the Home interface methods first.";
private ShareTrading shareTrading = null;
private ShareTradingHome shareTradingHome = null;
//Construct the EJB test client
public ShareTradingTestClient1() {
initialize();
}
public void initialize() {
try {
//get naming context
Context context = getInitialContext();
//look up jndi name
Object ref = context.lookup("ShareTrading");
//look up jndi name and cast to Home interface
shareTradingHome = (ShareTradingHome) PortableRemoteObject.narrow(
ref, ShareTradingHome.class);
} catch (Exception e) {
e.printStackTrace();
}
}
public Context getInitialContext() throws Exception {
String url = "t3://localhost:7001";
String user = null;
String password = null;
Properties properties;
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS,
password == null ? "" : password);
}
return new javax.naming.InitialContext(properties);
} catch (Exception e) {
System.out.println("Unable to connect to WebLogic server at " + url);
System.out.println("Please make sure that the server is running.");
throw e;
}
}
//----------------------------------------------------------------------------
// Methods that use Home interface methods to generate a Remote interface reference
//----------------------------------------------------------------------------
public ShareTrading create(String name) {
try {
shareTrading = shareTradingHome.create(name);
} catch (Exception e) {
e.printStackTrace();
}
return shareTrading;
}
//----------------------------------------------------------------------------
// Methods that use Remote interface methods to access data through the bean
//----------------------------------------------------------------------------
public void buyShare(String name, String shareName, int number) {
if (shareTrading == null) {
System.out.println("Error in buyShare(): " + ERROR_NULL_REMOTE);
return;
}
try {
shareTrading.buyShare(name, shareName, number);
} catch (Exception e) {
e.printStackTrace();
}
}
public void sellShare(String name, String shareName, int number) {
if (shareTrading == null) {
System.out.println("Error in sellShare(): " + ERROR_NULL_REMOTE);
return;
}
try {
shareTrading.sellShare(name, shareName, number);
} catch (Exception e) {
e.printStackTrace();
}
}
public int getShare(String shareName) {
int returnValue = 0;
if (shareTrading == null) {
System.out.println("Error in getShare(): " + ERROR_NULL_REMOTE);
return returnValue;
}
try {
returnValue = shareTrading.getShare(shareName);
} catch (Exception e) {
e.printStackTrace();
}
return returnValue;
}
//----------------------------------------------------------------------------
// Utility Methods
//----------------------------------------------------------------------------
public ShareTradingHome getHome() {
return shareTradingHome;
}
//Main method
public static void main(String[] args) {
ShareTradingTestClient1 client = new ShareTradingTestClient1();
ShareTradingHome home=client.getHome();
String customerName="";
String shareName;
int numberOfShare;
ShareTrading trObj=null;
BufferedReader bufferObj = null;
try {
bufferObj = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入要进行交易的顾客姓名的拼音全称: 。。。");
customerName = bufferObj.readLine();
} catch (IOException ex) {
}
try {
for (int count = 1; count <= 2; count++) {
System.out.println("开始交易。。。。。" + count);
System.out.println("====================================");
System.out.println(
"请输入您要买入的股票代号(中关村科技股:000931/青岛啤酒:600600/王府井百货:600859)");
shareName = bufferObj.readLine();
System.out.println("请输入您要买入的股票数量: ");
numberOfShare = Integer.parseInt(bufferObj.readLine());
trObj = home.create(customerName);
trObj.buyShare(customerName, shareName, numberOfShare);
System.out.println(
"请输入您要卖出的股票名(中关村科技:000931/青岛啤酒:600600/王府井百货:600859)");
shareName = bufferObj.readLine();
System.out.println("请输入您要卖出的股票数量:");
numberOfShare = Integer.parseInt(bufferObj.readLine());
trObj = home.create(customerName);
trObj.sellShare(customerName, shareName, numberOfShare);
System.out.println("交易结束。。。。。。。。。。。。。。" + count);
System.out.println("你现在的3只股票总数:" + trObj.getShare("total"));
System.out.println("=======================================");
}
} catch (CreateException ex1) {
} catch (NumberFormatException ex1) {
} catch (IOException ex1) {
}
}
}
PS:BufferedReader需要导入IO包,当初没导入...一顿郁闷....