Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

The deployment descriptor of the OrderEJB.jar is as follows.

Code Block
XML
XML
borderStylesolid
titleejb-jar.xmlXML
<?xml version="1.0" encoding="UTF-8" ?> 
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
         
    <description>Stateless Session Bean Example</description>
    <display-name>Stateless Session Bean Example</display-name> 

    <enterprise-beans>
        <session>
            <ejb-name>RetrieveOrderInfoBean</ejb-name>
            <business-local>
                examples.session.stateless_dd.RetrieveOrderInfo
            </business-local>
            <ejb-class>
                examples.session.stateless_dd.RetrieveOrderInfoBean
            </ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Container</transaction-type> 
            
            <resource-ref>
                <res-ref-name>jdbc/DB2DataSource</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
                <res-auth>Container</res-auth>
                <res-sharing-scope>Shareable</res-sharing-scope>
            </resource-ref>
        </session>
    </enterprise-beans>
    
    <interceptors>
        <interceptor>
            <interceptor-class>
                examples.session.stateless_dd.RetrieveOrderCallbacks
            </interceptor-class>
            <post-construct>
                <lifecycle-callback-method>construct</lifecycle-callback-method>
            </post-construct>
            
            <pre-destroy>
                <lifecycle-callback-method>destroy</lifecycle-callback-method>
            </pre-destroy>
        </interceptor>
    </interceptors>
    
    <assembly-descriptor>
        <interceptor-binding>
            <ejb-name>RetrieveOrderInfoBean</ejb-name>
            <interceptor-class>
                examples.session.stateless_dd.RetrieveOrderCallbacks
            </interceptor-class>
        </interceptor-binding>
    </assembly-descriptor>  
</ejb-jar>

...

In the RetrieveOrderInfoBean, the following code is used to look up the Datasource object and obtain a database connection.

Code Block
JAVA
JAVA
borderStylesolid
titleexamples.session.stateless_dd.RetrieveOrderInfoBeanJAVA
...
...
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/DB2DataSource");
System.out.println("Got DataSource\n");
con = ds.getConnection();
System.out.println("Got Connection\n");
...
...

The deployment descriptor of the OrderWEB.war is as follows.

Code Block
XML
XML
borderStylesolid
titleweb.xmlXML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         id="WebApp_ID" version="2.5">
         
    <display-name>OrderWEB</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    
    <servlet>
        <description></description>
        <display-name>RetrieveOrder</display-name>
        <servlet-name>RetrieveOrder</servlet-name>
        <servlet-class>
           examples.web.servlet.RetrieveOrder
        </servlet-class>
    </servlet>
    
    <ejb-local-ref>
        <ejb-ref-name>ejb/RetrieveOrderInfo</ejb-ref-name>
        <ejb-ref-type>Session</ejb-ref-type>
        <local>
            examples.session.stateless_dd.RetrieveOrderInfo
        </local>
        <ejb-link>RetrieveOrderInfoBean</ejb-link>
    </ejb-local-ref>
    
    <servlet-mapping>
        <servlet-name>RetrieveOrder</servlet-name>
        <url-pattern>/RetrieveOrder</url-pattern>
    </servlet-mapping>
</web-app>

...

In the RetrieveOrder servlet, the following code is used to look up the ejb to retrieve the order details.

Code Block
JAVA
JAVA
borderStylesolid
titleexamples.web.servlet.RetrieveOrderJAVA
...
...
Context ctx  = new InitialContext();
System.out.println("Instantiating beans...");
retrieveOInfo = (RetrieveOrderInfo)ctx.lookup("java:comp/env/ejb/RetrieveOrderInfo");
String orderIdStr = request.getParameter("orderid");
int orderId = Integer.parseInt(orderIdStr);
OrderInfo oInfo = retrieveOInfo.getOrderInfo(orderId);
...
...

The deployment descriptor of the Order.ear is as follows.

Code Block
XML
XML
borderStylesolid
titleapplication.xmlXML
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			 xmlns="http://java.sun.com/xml/ns/javaee" 
			 xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd"
			 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
			 http://java.sun.com/xml/ns/j2ee/application_5.xsd" version="5">
			 
	<description>EAR Example</description>
	<display-name>Order Sample</display-name>
	
	<module>
		<web>
			<web-uri>OrderWEB.war</web-uri>
			<context-root>/OrderDemo</context-root>
		</web>
	</module>
	
	<module>
		<ejb>OrderEJB.jar</ejb>
	</module>
</application>

...

The deployment plan of the Order.ear is as follows.

Code Block
XML
XML
borderStylesolid
titlegeronimo-application.xmlXML
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" 
             xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2" 
             application-name="Order">

	<sys:environment>
		<sys:moduleId>
			<sys:groupId>Order</sys:groupId>
			<sys:artifactId>OrderEAR</sys:artifactId>
			<sys:version>5.0</sys:version>
			<sys:type>car</sys:type>
		</sys:moduleId>
	</sys:environment>
  
    <module>
        <web>OrderWEB.war</web>
        <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1" >
        <sys:environment>
            <sys:moduleId>
                <sys:groupId>Order</sys:groupId>
                <sys:artifactId>OrderWEB</sys:artifactId>
                <sys:version>2.5</sys:version>
                <sys:type>war</sys:type>
            </sys:moduleId>
        </sys:environment>
            <context-root>/OrderDemo</context-root>
        </web-app>
    </module>
    
    <module>
        <ejb>OrderEJB.jar</ejb>
        <openejb-jar xmlns="http://openejb.apache.org/xml/ns/openejb-jar-2.2" 
					 xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2">
					 
			<sys:environment>
				<sys:moduleId>
					<sys:groupId>Order</sys:groupId>
					<sys:artifactId>OrderEJB</sys:artifactId>
					<sys:version>3.0</sys:version>
					<sys:type>jar</sys:type>
				</sys:moduleId>
				
				<sys:dependencies>
					<sys:dependency>
						<sys:groupId>console.dbpool</sys:groupId>
						<sys:artifactId>OrderDS</sys:artifactId>
						<sys:version>1.0</sys:version>
						<sys:type>rar</sys:type>
					</sys:dependency>
				</sys:dependencies>
			</sys:environment>
			
			<enterprise-beans>
				<session>
					<ejb-name>RetrieveOrderInfoBean</ejb-name>
					<naming:resource-ref>
						<naming:ref-name>jdbc/DB2DataSource</naming:ref-name>
						<naming:resource-link>OrderDS</naming:resource-link>
					</naming:resource-ref>
				</session>
			</enterprise-beans>
		</openejb-jar>
	</module>
</application>

...