0. Prerequisite
As sample01.
1. Customize code in chapter4
$ cd $HOME/student/ejbactGF/chapter4
$ 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
...
+ <!-- Drop and Create JMS Connection destination -->
+ <propertyname="jms.queue" value="jms/ShippingRequestQueue"/>
...
<arg line=" undeploy"/>
<arg line="--user ${admin.user}"/>
- <arg line="--passwordfile ${PWD_FILE}"/>
<arg line="--host ${admin.host}"/>
diff -u sql/tables.sql.orig sql/tables.sql
...
- create table SHIPPING_REQUESTS(
- ITEM_IDnumber(19),
- SHIPPING_ADDRESS varchar2(255),
- SHIPPING_METHOD varchar2(255),
- INSURANCE_AMOUNT number(20,4))
- /
+drop table SHIPPING_REQUESTS;
+ create table SHIPPING_REQUESTS (
+ ITEM_ID BIGINT,
+ SHIPPING_ADDRESS VARCHAR(255),
+ SHIPPING_METHOD VARCHAR(255),
+ INSURANCE_AMOUNT FLOAT
+ );
diff -u src/ejb/bean/actionbazaar/buslogic/ShippingRequestProcessorMDB.java.orig src/ejb/bean/actionbazaar/buslogic/ShippingRequestProcessorMDB.java
...
- ,mappedName = "ShippingRequestQueue"
+ ,mappedName = "jms/ShippingRequestQueue"
)
...
- @Resource(name = "jdbc/TurtleDS")
+ @Resource(name = "jdbc/TurtleDS", mappedName ="jdbc/__default")
public void setDataSource(DataSource dataSource) {
diff-u src/ejb/client/actionbazaar/buslogic/ShippingRequestJMSProducer.java.orig src/ejb/client/actionbazaar/buslogic/ShippingRequestJMSProducer.java
...
public class ShippingRequestJMSProducer {
- @Resource(name = "jms/ShippingRequestQueue", mappedName= "ShippingRequestQueue")
+ @Resource(name = "jms/ShippingRequestQueue", mappedName= "jms/ShippingRequestQueue")
private static Destination destination;
- @Resource(name = "jms/QueueConnectionFactory")
+ @Resource(name = "jms/QueueConnectionFactory",mappedName = "jms/__defaultConnectionFactory")
private static ConnectionFactory connectionFactory;
2. Build, deploy and running
$ cd $HOME/student/ejbactGF/chapter4
$ ant drop-que crt-que # drop and create queue, if need
$ ant db-setup # drop and create db tables, if need
$ ant undeploy # if need
$ ant clean build
$ ant deploy
$ ant run
In server log, we can see a message - “Shipping Request processed..”
The result can be observed from ij tool:
$ ij.sh
ij> select * from SHIPPING_REQUESTS;
ITEM_ID |SHIPPING_ADDRESS |SHIPPING_METHOD |INSURANCE_AMOUNT
------------------------------------------------------------------------------------------------------------------------------------
10101 |101 In Hell |snailMail |101.0
1 row selected