Listings C.40 C.47 are the deployment descriptors used in the application. Next to the heading of each of these files, the location where the file is to be placed appears in parentheses. Listing C.40 application.xml (META-INF of deployable_components Directory)<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd"> <application> <display-name>Airline Ticket Booking Application</display-name> <description>Airline Ticket Booking Application</description> <module> <ejb>AirlinesEJBApp.jar</ejb> </module> <module> <web> <web-uri>AirlinesWebApp.war</web-uri> <context-root>AirlinesApp</context-root> </web> </module> </application> Listing C.41 web.xml (Web Component)<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <display-name>Shopping App servlet</display-name> <servlet> <servlet-name> com_sams_learnweblogic7_airlines_servlet_AirlineTicketBookingServlet </servlet-name> <servlet-class> com.sams.learnweblogic7.airlines.servlet.AirlineTicketBookingServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> com_sams_learnweblogic7_airlines_servlet_AirlineTicketBookingServlet </servlet-name> <url-pattern>/AirlineTicketBookingServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>Welcome</servlet-name> <jsp-file>CheckAvailFlightsPage.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>Welcome</servlet-name> <url-pattern>/Welcome</url-pattern> </servlet-mapping> <servlet> <servlet-name>ErrorServlet</servlet-name> <jsp-file>Error.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>ErrorServlet</servlet-name> <url-pattern>/ErrorPage</url-pattern> </servlet-mapping> <servlet> <servlet-name>ViewAvaliableFlights</servlet-name> <jsp-file>ViewAvailFlightsPage.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>ViewAvaliableFlights</servlet-name> <url-pattern>/ViewAvailFlightsPage</url-pattern> </servlet-mapping> <servlet> <servlet-name>LoginServlet</servlet-name> <jsp-file>Login.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/Login</url-pattern> </servlet-mapping> <servlet> <servlet-name>ConfirmationServlet</servlet-name> <jsp-file>ConfirmFlightDetails.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>ConfirmationServlet</servlet-name> <url-pattern>/DisplayConfirmation</url-pattern> </servlet-mapping> <servlet> <servlet-name>ThankYouServlet</servlet-name> <jsp-file>Message.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>ThankYouServlet</servlet-name> <url-pattern>/Message</url-pattern> </servlet-mapping> <servlet> <servlet-name>RegisterUserServlet</servlet-name> <jsp-file>RegisterUserProfilePage.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>RegisterUserServlet</servlet-name> <url-pattern>/RegisterUserProfilePage</url-pattern> </servlet-mapping> <servlet> <servlet-name>ViewProfileServlet</servlet-name> <jsp-file>ViewUserProfilePage.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>ViewProfileServlet</servlet-name> <url-pattern>/ViewUserProfilePage</url-pattern> </servlet-mapping> <servlet> <servlet-name>ViewFlightDetailsServlet</servlet-name> <jsp-file>ViewFlightDetailsPage.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>ViewFlightDetailsServlet</servlet-name> <url-pattern>/ViewFlightDetails</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> <taglib> <taglib-uri>weblogic-tags.tld</taglib-uri> <taglib-location>/WEB-INF/lib/weblogic-tags.jar</taglib-location> </taglib> </web-app></web-app> Listing C.42 weblogic.xml (Web Component)<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 7.0 //EN" "http://www.bea.com/servers/wls700/dtd/weblogic-web-jar.dtd"> <weblogic-web-app> <jsp-descriptor> <jsp-param> <param-name> pageCheckSeconds </param-name> <param-value> 1 </param-value> </jsp-param> <jsp-param> <param-name> verbose </param-name> <param-value> true </param-value> </jsp-param> </jsp-descriptor> </weblogic-web-app> Listing C.43 ejb-jar.xml (EJB Component)<?xml version="1.0"?> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'> <ejb-jar> <enterprise-beans> <session> <ejb-name>CustomerServiceAgentBean</ejb-name> <home> com.sams.learnweblogic7.airlines.sessionbean.CustomerServiceAgentHome </home> <remote> com.sams.learnweblogic7.airlines.sessionbean.CustomerServiceAgentInterface </remote> <ejb-class> com.sams.learnweblogic7.airlines.sessionbean.CustomerServiceAgentBean </ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> <entity> <ejb-name>Flight</ejb-name> <local-home> com.sams.learnweblogic7.airlines.entitybean.FlightHome </local-home> <local> com.sams.learnweblogic7.airlines.entitybean.FlightInterface </local> <ejb-class> com.sams.learnweblogic7.airlines.entitybean.FlightBean </ejb-class> <persistence-type>Container</persistence-type> <prim-key-class> com.sams.learnweblogic7.airlines.entitybean.FlightPK </prim-key-class> <reentrant>False</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>Flight</abstract-schema-name> <cmp-field> <field-name>available_seats</field-name> </cmp-field> <cmp-field> <field-name>flight_departure_date</field-name> </cmp-field> <cmp-field> <field-name>total_seats</field-name> </cmp-field> <cmp-field> <field-name>price</field-name> </cmp-field> <cmp-field> <field-name>duration</field-name> </cmp-field> <cmp-field> <field-name>arrival_time</field-name> </cmp-field> <cmp-field> <field-name>departure_time</field-name> </cmp-field> <cmp-field> <field-name>to_location</field-name> </cmp-field> <cmp-field> <field-name>from_location</field-name> </cmp-field> <cmp-field> <field-name>flight_id</field-name> </cmp-field> <cmp-field> <field-name>airline_name</field-name> </cmp-field> <cmp-field> <field-name>airline_id</field-name> </cmp-field> <query> <query-method> <method-name>findAvailableFlights</method-name> <method-params> <method-param>java.lang.String</method-param> <method-param>java.lang.String</method-param> <method-param>java.sql.Date</method-param> </method-params> </query-method> <ejb-ql> <![CDATA[SELECT OBJECT(a) FROM Flight AS a WHERE a.from_location = ?1 AND a.to_location = ?2 AND a.flight_departure_date = ?3]]> </ejb-ql> </query> <query> <query-method> <method-name>findFlightForADate</method-name> <method-params> <method-param>int</method-param> <method-param>java.sql.Date</method-param> </method-params> </query-method> <ejb-ql> <![CDATA[SELECT OBJECT(a) FROM Flight AS a WHERE a.flight_id = ?1 AND a.flight_departure_date = ?2]]> </ejb-ql> </query> </entity> <entity> <ejb-name>Passenger</ejb-name> <local-home> com.sams.learnweblogic7.airlines.entitybean.PassengerHome </local-home> <local> com.sams.learnweblogic7.airlines.entitybean.PassengerInterface </local> <ejb-class> com.sams.learnweblogic7.airlines.entitybean.PassengerBean </ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.String</prim-key-class> <reentrant>False</reentrant> <abstract-schema-name>Passenger</abstract-schema-name> <cmp-field> <field-name>expiration_year</field-name> </cmp-field> <cmp-field> <field-name>expiration_month</field-name> </cmp-field> <cmp-field> <field-name>card_type</field-name> </cmp-field> <cmp-field> <field-name>card_number</field-name> </cmp-field> <cmp-field> <field-name>email_id</field-name> </cmp-field> <cmp-field> <field-name>tel_no</field-name> </cmp-field> <cmp-field> <field-name>address</field-name> </cmp-field> <cmp-field> <field-name>last_name</field-name> </cmp-field> <cmp-field> <field-name>first_name</field-name> </cmp-field> <cmp-field> <field-name>password</field-name> </cmp-field> <cmp-field> <field-name>profile_id</field-name> </cmp-field> <primkey-field>profile_id</primkey-field> <query> <query-method> <method-name>findByPassword</method-name> <method-params> <method-param>java.lang.String</method-param> <method-param>java.lang.String</method-param> </method-params> </query-method> <ejb-ql> <![CDATA[SELECT OBJECT(a) FROM Passenger AS a WHERE a.profile_id = ?1 AND a.password = ?2]]> </ejb-ql> </query> </entity> <entity> <ejb-name>TicketInfo</ejb-name> <local-home> com.sams.learnweblogic7.airlines.entitybean.TicketInfoHome </local-home> <local> com.sams.learnweblogic7.airlines.entitybean.TicketInfoInterface </local> <ejb-class> com.sams.learnweblogic7.airlines.entitybean.TicketInfoBean </ejb-class> <persistence-type>Container</persistence-type> <prim-key-class> com.sams.learnweblogic7.airlines.entitybean.TicketInfoPK </prim-key-class> <reentrant>False</reentrant> <abstract-schema-name>TicketInfoEJB</abstract-schema-name> <cmp-field> <field-name>flight_id</field-name> </cmp-field> <cmp-field> <field-name>status</field-name> </cmp-field> <cmp-field> <field-name>profile_id</field-name> </cmp-field> <cmp-field> <field-name>ticket_id</field-name> </cmp-field> <cmp-field> <field-name>departureDate</field-name> </cmp-field> <query> <query-method> <method-name>findByProfileID</method-name> <method-params> <method-param>java.lang.String</method-param> </method-params> </query-method> <ejb-ql> <![CDATA[SELECT OBJECT(a) FROM TicketInfoEJB AS a WHERE a.profile_id = ?1]]> </ejb-ql> </query> </entity> <session> <ejb-name>TicketSalesAgent</ejb-name> <home> com.sams.learnweblogic7.airlines.sessionbean.TicketSalesAgentHome </home> <remote> com.sams.learnweblogic7.airlines.sessionbean.TicketSalesAgentInterface </remote> <ejb-class> com.sams.learnweblogic7.airlines.sessionbean.TicketSalesAgentBean </ejb-class> <session-type>Stateful</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>TicketSalesAgent</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> <container-transaction> <method> <ejb-name>Flight</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> <container-transaction> <method> <ejb-name>CustomerServiceAgentBean</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> Listing C.44 weblogic-ejb-jar.xml (EJB Component)<?xml version="1.0"?> <!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-ejb-jar.dtd'> <weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name>TicketSalesAgent</ejb-name> <jndi-name>TicketSalesAgent</jndi-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name>Flight</ejb-name> <entity-descriptor> <persistence> <persistence-type> <type-identifier>WebLogic_CMP_RDBMS</type-identifier> <type-version>7.0</type-version> <type-storage> META-INF/weblogic-cmp-rdbms-jar-Flight.xml </type-storage> </persistence-type> <persistence-use> <type-identifier>WebLogic_CMP_RDBMS</type-identifier> <type-version>7.0</type-version> </persistence-use> </persistence> </entity-descriptor> <local-jndi-name>Flight_Home</local-jndi-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name>TicketInfo</ejb-name> <entity-descriptor> <persistence> <persistence-type> <type-identifier>WebLogic_CMP_RDBMS</type-identifier> <type-version>7.0</type-version> <type-storage> META-INF/weblogic-cmp-rdbms-jar-TicketInfo.xml </type-storage> </persistence-type> <persistence-use> <type-identifier>WebLogic_CMP_RDBMS</type-identifier> <type-version>7.0</type-version> </persistence-use> </persistence> </entity-descriptor> <local-jndi-name>TicketInfo</local-jndi-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name>Passenger</ejb-name> <entity-descriptor> <persistence> <persistence-type> <type-identifier>WebLogic_CMP_RDBMS</type-identifier> <type-version>7.0</type-version> <type-storage> META-INF/weblogic-cmp-rdbms-jar-Passenger.xml </type-storage> </persistence-type> <persistence-use> <type-identifier>WebLogic_CMP_RDBMS</type-identifier> <type-version>7.0</type-version> </persistence-use> </persistence> </entity-descriptor> <local-jndi-name>Passenger</local-jndi-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name>CustomerServiceAgentBean</ejb-name> <jndi-name>CustomerServiceAgentBean</jndi-name> </weblogic-enterprise-bean> </weblogic-ejb-jar> Listing C.45 weblogic-cmp-rdbms-jar-Flight.xml (EJB Component)<!DOCTYPE weblogic-rdbms-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB RDBMS Persistence//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-rdbms20-persistence-700.dtd'> <weblogic-rdbms-jar> <weblogic-rdbms-bean> <ejb-name>Flight</ejb-name> <data-source-name>ejb-datasource-learnweblogic7</data-source-name> <table-map> <table-name>flight</table-name> <field-map> <cmp-field>airline_id</cmp-field> <dbms-column>airline_id</dbms-column> </field-map> <field-map> <cmp-field>airline_name</cmp-field> <dbms-column>airline_name</dbms-column> </field-map> <field-map> <cmp-field>flight_id</cmp-field> <dbms-column>flight_id</dbms-column> </field-map> <field-map> <cmp-field>from_location</cmp-field> <dbms-column>from_location</dbms-column> </field-map> <field-map> <cmp-field>to_location</cmp-field> <dbms-column>to_location</dbms-column> </field-map> <field-map> <cmp-field>departure_time</cmp-field> <dbms-column>departure_time</dbms-column> </field-map> <field-map> <cmp-field>arrival_time</cmp-field> <dbms-column>arrival_time</dbms-column> </field-map> <field-map> <cmp-field>duration</cmp-field> <dbms-column>duration</dbms-column> </field-map> <field-map> <cmp-field>total_seats</cmp-field> <dbms-column>total_seats</dbms-column> </field-map> </table-map> <table-map> <table-name>flight_details</table-name> <field-map> <cmp-field>flight_id</cmp-field> <dbms-column>flight_id</dbms-column> </field-map> <field-map> <cmp-field>price</cmp-field> <dbms-column>price</dbms-column> </field-map> <field-map> <cmp-field>flight_departure_date</cmp-field> <dbms-column>flight_departure_date</dbms-column> </field-map> <field-map> <cmp-field>available_seats</cmp-field> <dbms-column>available_seats</dbms-column> </field-map> </table-map> </weblogic-rdbms-bean> <create-default-dbms-tables>true</create-default-dbms-tables> </weblogic-rdbms-jar> Listing C.46 weblogic-cmp-rdbms-jar-Passenger.xml (EJBComponent)<!DOCTYPE weblogic-rdbms-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB RDBMS Persistence//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-rdbms20-persistence-700.dtd'> <weblogic-rdbms-jar> <weblogic-rdbms-bean> <ejb-name>Passenger</ejb-name> <data-source-name>examples-dataSource-demoPool</data-source-name> <table-map> <table-name>passenger_profile</table-name> <field-map> <cmp-field>profile_id</cmp-field> <dbms-column>profile_id</dbms-column> </field-map> <field-map> <cmp-field>password</cmp-field> <dbms-column>password</dbms-column> </field-map> <field-map> <cmp-field>first_name</cmp-field> <dbms-column>first_name</dbms-column> </field-map> <field-map> <cmp-field>last_name</cmp-field> <dbms-column>last_name</dbms-column> </field-map> <field-map> <cmp-field>address</cmp-field> <dbms-column>address</dbms-column> </field-map> <field-map> <cmp-field>tel_no</cmp-field> <dbms-column>tel_no</dbms-column> </field-map> <field-map> <cmp-field>email_id</cmp-field> <dbms-column>email_id</dbms-column> </field-map> </table-map> <table-map> <table-name>credit_card_details</table-name> <field-map> <cmp-field>profile_id</cmp-field> <dbms-column>profile_id</dbms-column> </field-map> <field-map> <cmp-field>card_number</cmp-field> <dbms-column>card_number</dbms-column> </field-map> <field-map> <cmp-field>card_type</cmp-field> <dbms-column>card_type</dbms-column> </field-map> <field-map> <cmp-field>expiration_month</cmp-field> <dbms-column>expiration_month</dbms-column> </field-map> <field-map> <cmp-field>expiration_year</cmp-field> <dbms-column>expiration_year</dbms-column> </field-map> </table-map> </weblogic-rdbms-bean> </weblogic-rdbms-jar> Listing C.47 weblogic-cmp-rdbms-TicketInfo.xml (EJB Component)<!DOCTYPE weblogic-rdbms-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB RDBMS Persistence//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-rdbms20-persistence-700.dtd'> <weblogic-rdbms-jar> <weblogic-rdbms-bean> <ejb-name>TicketInfo</ejb-name> <data-source-name>examples-dataSource-demoPool</data-source-name> <table-map> <table-name>ticket_info</table-name> <field-map> <cmp-field>ticket_id</cmp-field> <dbms-column>ticket_id</dbms-column> </field-map> <field-map> <cmp-field>profile_id</cmp-field> <dbms-column>profile_id</dbms-column> </field-map> <field-map> <cmp-field>status</cmp-field> <dbms-column>status</dbms-column> </field-map> <field-map> <cmp-field>flight_id</cmp-field> <dbms-column>flight_id</dbms-column> </field-map> <field-map> <cmp-field>departureDate</cmp-field> <dbms-column>flight_departure_date</dbms-column> </field-map> </table-map> </weblogic-rdbms-bean> </weblogic-rdbms-jar> |