0. Prerequisite
As sample01.
1. Customize general configuration
As sample01
2. Customize code in chapter3
$ cd $HOME/student/ejbactGF/chapter3
$ for i in `find * -name "*.orig"`; do j=`expr $i :'\(.*\).orig'`; echo diff -u $i $j; diff -u $i $j; echo; echo; done
diff -u build.xml.orig build.xml
...
<propertyname="cli.name" value="${app.name}-client" />
+ <property name="cli.sfsb.name"value="${app.name}-sfsb-client" />
<propertyname="src.dir" value="./src" />
...
- <target name="package-app"depends="package-ejb,package-client">
+ <target name="package-app"depends="package-ejb,package-client, package-client-sfsb">
<copytodir="${bld.ear.dir}/META-INF">
...
+ <target name="package-client-sfsb"depends="compile-cli-classes,cli-descriptor">
+ <jar jarfile="${lib.dir}/${cli.sfsb.name}.jar"manifest="${etc.dir}/Manifest-sfsb.mf">
+ <fileset dir="${bld.ejb.cli.dir}" includes="**"/>
+ </jar>
+ </target>
...
<argline=" undeploy"/>
<argline="--user ${admin.user}"/>
- <arg line="--passwordfile ${PWD_FILE}"/>
...
+ <target name="run-sfsb"
+ depends="init">
+ <echo message="Executing client class using${J2EE_HOME}/bin/${APPCLIENT} "></echo>
+ <exec executable="${J2EE_HOME}/bin/${APPCLIENT}">
+ <arg line="-client lib/chapter3-sfsb-client.jar"/>
+ </exec>
+ </target>
diff -u sql/tables.sql.orig sql/tables.sql
...
-create table BIDDERS
-(username varchar2(10) primary key,
-first_name varchar2(30),
-credit_card_type varchar2(20))
-/
+drop table BIDDERS;
+create table BIDDERS (
+ username varchar(10) primary key,
+ first_name varchar(30),
+ credit_card_type varchar(20)
+);
-create table BIDS (
-BID_ID NUMBER(19) primary key,
-BID_DATE DATE,
-BID_STATUS VARCHAR2(20),
-BID_PRICE NUMBER(19,4),
-BID_ITEM_ID NUMBER(19),
-BID_BIDDER VARCHAR2(45))
-/
+drop table BIDS;
+create table BIDS (
+ BID_ID BIGINT primary key,
+ BID_DATE DATE,
+ BID_STATUS VARCHAR(20),
+ BID_PRICE FLOAT,
+ BID_ITEM_ID BIGINT,
+ BID_BIDDER VARCHAR(45)
+);
diff-u src/ejb/bean/actionbazaar/buslogic/BidderAccountCreatorBean.java.orig src/ejb/bean/actionbazaar/buslogic/BidderAccountCreatorBean.java
...
@Stateful(name= "BidderAccountCreator")
public class BidderAccountCreatorBean implements BidderAccountCreator {
- @Resource(name = "jdbc/ActionBazaarDS")
+ @Resource(name = "jdbc/ActionBazaarDS", mappedName = "jdbc/__default")
private DataSource dataSource;
diff-u src/ejb/bean/actionbazaar/buslogic/BidManagerBean.java.orig src/ejb/bean/actionbazaar/buslogic/BidManagerBean.java
...
- @Resource(name = "jdbc/ActionBazaarDS")
+ @Resource(name = "jdbc/ActionBazaarDS", mappedName = "jdbc/__default")
private DataSource dataSource;
$ cat etc/Manifest-sfsb.mf # besides, need another manifest for stateful EJB
Main-Class: actionbazaar.buslogic.AccountCreatorClient
Class-path: ../build/chapter3/chapter3-ejb.jar
3. Build, deploy and running
$ cd $HOME/student/ejbactGF/chapter3
$ ant db-setup # drop and create db tables, if need
$ ant undeploy # if need
$ ant clean build
$ ant deploy
$ ant run # run the stateless EJB
run:
[echo] Executing client class using /home/weblogic/glassfish4/glassfish/bin/appclient
[exec] Bid Successful, BidId Received is:1002
The result can be observed from ij tool:
$ ij.sh
ij> select * from BIDS;
BID_ID |BID_DATE |BID_STATUS |BID_PRICE |BID_ITEM_ID |BID_BIDDER
------------------------------------------------------------------------------------------------------------
1002 |NULL |NULL | 10000.5 |100 |viper
1 row selected
$ ant run-sfsb # run the stateful EJB
[echo] Executing client class using/home/weblogic/glassfish4/glassfish/bin/appclient
From server log we can see:
Bidder successfully created ..
The result can be observed from ij tool as well:
$ ij.sh
ij> select * from BIDDERS;
USERNAME |FIRST_NAME |CREDIT_CARD_TYPE
------------------------------------------------------------------------
dpanda |Debu |VISA
1 row selected