Download
FAQ
History
PrevHomeNext API
Search
Feedback
Divider

Building, Packaging, Deploying, and Running the Application

The source code for the Coffee Break application is located in the directory <INSTALL>/j2eetutorial14/examples/cb/. Within the cb directory are subdirectories for each Web application--saaj, jaxrpc, server, and server-jsf--and a directory, common, for classes shared by the Web applications. Each subdirectory contains a build.xml and build.properties file. The Web application subdirectories in turn contain a src subdirectory for Java classes and a web subdirectory for Web resources.

Setting the Port

The JAX-RPC and SAAJ services in the Coffee Break application run at the port that you specified when you installed the Application Server. The tutorial examples assume that the Application Server runs on the default port, 8080. If you have changed the port, you must update the port number in the following files before building and running the examples:

Setting Up the Registry Server

The Coffee Break servers uses a registry server to obtain information about the JAX-RPC service endpoint. Since the Application Server does not include a registry server, you must obtain one before you can run the application.

We recommend that you use the Registry Server provided with the Java Web Services Developer Pack (Java WSDP) 1.3, which you can download from http://java.sun.com/webservices/downloads/. The Registry Server is automatically loaded when you start the Java WSDP Tomcat server. You may need to modify the port that Tomcat runs on because the default port for both the Application Server and Tomcat is 8080. To change the port for Tomcat and the Registry Server database to 8082:

  1. Edit the port attribute of the Connector element of the Java Web Services Developer Pack Service in the file <JWSDP_HOME>/conf/server.xml as follows:
  2. <Service name="Java Web Services Developer Pack">
      <Connector className="org.apache.coyote.tomcat5.CoyoteConnector" port="
    8082" minProcessors="5" maxProcessors="100"
    ...

  3. Remove the comment around and set the Xindice host and port system properties in the file <JWSDP_HOME>/jwsdp-shared/bin/launcher.xml as follows:
  4. <sysproperty key="org.apache.xindice.host" value="localhost"/>
    <sysproperty key="org.apache.xindice.port" value="
    8082"/>

Then, start the Registry Server:

Using the Provided WARs

The instructions that follow for packaging and deploying the Coffee Break Web applications assume that you are familiar with the deploytool procedures for packaging Web services and presentation-oriented Web applications described in previous chapters of the tutorial. If after following these procedures you have trouble deploying or running the application, you can use the WARs provided in <INSTALL>/j2eetutorial14/examples/cb/provided-wars/ to run the example. The provided WARs assume that Coffee Break supplier services are running on port 8080 and the registry server is running on port 8082. If the services are not running on port 8080, you won't be able to use these WARs. If the registry server is not running on port 8082, you can use the WARs but you must update the registryURL context parameter in the JAX-RPC service and Coffee Break server WARs.

Building the Common Classes

The Coffee Break applications share a number of common utility classes. To build the common classes, do the following:

  1. In a terminal window, go to <INSTALL>/j2eetutorial14/examples/cb/common/.
  2. Run asant build.

Building, Packaging, and Deploying the JAX-RPC Service

To build the JAX-RPC service and client library and to package and deploy the JAX-RPC service, follow these steps:

  1. In a terminal window, go to <INSTALL>/j2eetutorial14/examples/cb/jaxrpc/.
  2. Run asant build-registry and asant build-service. These tasks create the JAR file containing the JAXR routines and run wscompile and compile the source files of the JAX-RPC service.
  3. If you get an error, make sure that you edited the file <INSTALL>/j2eetutorial14/examples/common/build.properties as described in Building the Examples.

  4. Make sure the Application Server and Registry Server are started.
  5. Start deploytool.
  6. Create a stand-alone Web module named jaxrpc-coffee-supplier in <INSTALL>/j2eetutorial14/examples/cb/jaxrpc/.
  7. Set the context root to /jaxrpc-coffee-supplier.
  8. Add the content to the service.
    1. Add the com package, Supplier.wsdl, and mapping.xml under <INSTALL>/j2eetutorial14/examples/cb/jaxrpc/build/server/ to the module.
    2. Navigate to <INSTALL>/j2eetutorial14/examples/cb/jaxrpc/build/registry/dist/ and add registry-org.jar.
    3. In the Web module contents editor, drag the com directory (containing sun/cb/SupplierPrices.properties) from the context root to WEB-INF/classes/.
  9. Specify Web Services Endpoint as the component type.
  10. In the Choose Service dialog box (Define New Service):
    1. In the WSDL File combo box, select WEB-INF/wsdl/Supplier.wsdl.
    2. In the Mapping File combo box, select mapping.xml.
  11. In the Component General Properties dialog box:
    1. In the Service Endpoint Implementation combo box, select com.sun.cb.SupplierImpl.
    2. Click Next.
  12. In the Web Service Endpoint dialog box:
    1. In the Service Endpoint Interface combo box, select com.sun.cb.SupplierIF.
    2. In the Namespace combo box, select urn:Foo.
    3. In the Local Part combo box, select SupplierIFPort.
    4. Click Next.
  13. Add the alias /jaxrpc to the SupplierImpl Web component.
  14. Select the Endpoint tab, and then select jaxrpc from the Endpoint Address combo box in the Sun-specific Settings frame.
  15. Add an event listener that references the listener class com.sun.cb.ContextListener.
  16. Add a resource reference of type javax.xml.registry.ConnectionFactory named eis/JAXR mapped to the JAXR connection factory eis/JAXR. If you have not already created the connection factory, follow the instructions in Creating JAXR Resources.
  17. Add the context parameter that specifies the URL of the registry server. The parameter is named registryURL and the value is http://localhost:port/RegistryServer/, where port is the port at which the registry server is running.
  18. Save the module.
  19. Deploy the module.
  20. Run asant build-client. This task creates the JAR file that contains the classes needed by JAX-RPC clients. The build-client task runs wscompile to generate the stubs and JavaBeans components.
  21. Test that the JAX-RPC service has been deployed correctly by running the test programs asant run-test-order and asant run-test-price
  22. Here is what you should see when you run asant run-test-price:

    run-test-price:
    run-test-client:
      [java] 07/21/03 08/20/03
      [java] Kona 6.50
      [java] French Roast 5.00
      [java] Wake Up Call 5.50
      [java] Mocca 4.00

Building, Packaging, and Deploying the SAAJ Service

To build the SAAJ service and client library and to package and deploy the SAAJ service, follow these steps:

  1. In a terminal window, go to <INSTALL>/j2eetutorial14/examples/cb/saaj/.
  2. Run asant build. This task creates the client library and compiles the server classes.
  3. Make sure the Application Server is started.
  4. Start deploytool.
  5. Create a stand-alone Web module called saaj-coffee-supplier in <INSTALL>/j2eetutorial14/examples/cb/saaj/.
  6. Set the context root to /saaj-coffee-supplier.
  7. Add the com directory under <INSTALL>/j2eetutorial14/examples/cb/saaj/build/server/ to the module.
  8. Add the ConfirmationServlet Web component. Choose the Servlet component type.
  9. Add the alias /orderCoffee to the ConfirmationServlet Web component.
  10. Add the PriceListServlet Web component to the existing saaj-coffee-supplier WAR.
  11. Add the alias /getPriceList to the PriceListServlet Web component.
  12. Save the module.
  13. Deploy the module.
  14. Test that the SAAJ service has been deployed correctly by running one or both of the test programs asant run-test-price and asant run-test-order.

Building, Packaging, and Deploying the Coffee Break Server

To build, package, and deploy the Coffee Break server:

  1. In a terminal window, go to <INSTALL>/j2eetutorial14/examples/cb/server/.
  2. Run asant build. This task compiles the server classes and copies the classes, JSP pages, and tag libraries into the correct location for packaging.
  3. Make sure the Application Server is started.
  4. Start deploytool.
  5. Create a stand-alone Web module called cbserver in <INSTALL>/j2eetutorial14/examples/cb/server/.
  6. Set the context root to /cbserver.
  7. Add the content to the Web module.
    1. Add all the JSP pages, tutorial-template.tld, and the template and com directories under <INSTALL>/j2eetutorial14/examples/cb/server/build/ to the module.
    2. In the Web module contents editor, drag the com directory (containing sun/cb/CoffeeBreak.properties) from the context root to WEB-INF/classes/.
    3. Add the JAX-RPC client library in <INSTALL>/j2eetutorial14/examples/cb/jaxrpc/dist/jaxrpc-client.jar to the module.
    4. Add the SAAJ client library in <INSTALL>/j2eetutorial14/examples/cb/saaj/dist/saaj-client.jar to the module.
  8. Create a Dispatcher Web component. Choose the Servlet component type.
  9. Add the aliases /orderForm, /checkoutForm, and /checkoutAck to the Dispatcher component.
  10. Add the RetailPriceListServlet Web component to the existing cbserver WAR.
  11. Add the alias /loadPriceList to the RetailPriceListServlet component.
  12. Add a resource reference of type javax.xml.registry.ConnectionFactory named eis/JAXR mapped to the JAXR connection factory eis/JAXR.
  13. Add a JSP property group named cbserver. The property group applies to the URL pattern *.jsp. Add the include prelude /template/prelude.jspf.
  14. Add a context parameter named javax.servlet.jsp.jstl.fmt.localizationContext and value com.sun.cb.messages.CBMessages.
  15. Add the context parameter that specifies the URL of the registry server. The parameter is named registryURL and the value is http://localhost:port/RegistryServer/, where port is the port at which the registry server is running.
  16. Specify a security constraint for RetailPriceListServlet.
    1. Select Basic as the User Authentication Method.
    2. Click Settings and enter file in the Realm Name field. Click OK.
    3. Add a security constraint and a web resource collection. Use the default names provided by deploytool.
    4. Add the URL /loadPriceList to the web resource collection.
    5. Select the GET HTTP method.
    6. Add the security role admin.
  17. Map the admin role to the admin user.
  18. Save the module.
  19. Deploy the module.

Building, Packaging, and Deploying the JavaServer Faces Technology Version of the Coffee Break Server

To build, package, and deploy the JavaServer Faces technology version of the Coffee Break server, follow these steps:

  1. In a terminal window, go to <INSTALL>/j2eetutorial14/examples/cb/server-jsf/.
  2. Run asant build. This task compiles the server classes and copies the classes, JSP pages, tag libraries, and other necessary files into the correct location for packaging.
  3. Make sure the Application Server is started.
  4. Start deploytool.
  5. Create a stand-alone Web module called cbserver-jsf in <INSTALL>/j2eetutorial14/examples/cb/server-jsf/.
  6. Set the context root to /cbserver-jsf.
  7. Add the content to the Web module.
    1. Add all the JSP pages, coffeebreak.css, faces-config.xml, index.html, and the template and com directories under <INSTALL>/j2eetutorial14/examples/cb/server-jsf/build/ to the module.
    2. In the Web module contents editor, drag the com directory (containing sun/cb/CoffeeBreak.properties) from the context root to WEB-INF/classes.
    3. Drag faces-config.xml to the root of the WEB-INF directory.
    4. Add the JSF API library from <J2EE_HOME>/lib/jsf-api.jar to the module.
    5. Add the JAX-RPC client library in <INSTALL>/j2eetutorial14/examples/cb/jaxrpc/dist/jaxrpc-client.jar to the module.
    6. Add the SAAJ client library in <INSTALL>/j2eetutorial14/examples/cb/saaj/dist/saaj-client.jar to the module.
  8. Create a FacesServlet Web component. Choose the Servlet component type.
  9. In the Load Sequence Position field on the Component General Properties dialog, enter 1.
  10. Add the aliases /faces/* and *.jsf to the FacesServlet component.
  11. Add a resource reference of type javax.xml.registry.ConnectionFactory named eis/JAXR mapped to the JAXR connection factory eis/JAXR.
  12. Add a JSP property group named cbserver-jsf. The property group applies to the URL pattern *.jsp. Add the include prelude /template/prelude.jspf.
  13. Add the context parameter that specifies the URL of the registry server. The parameter is named registryURL and the value is http://localhost:port/RegistryServer/, where port is the port at which the registry server is running.
  14. Save the module.
  15. Deploy the module.

Running the Coffee Break Client

After you have installed all the Web applications, check that all the applications are running in deploytool or the Admin Console. You should see cbserver, jaxrpc-coffee-supplier, and saaj-coffee-supplier in the list of applications.

If you have installed the non-GUI framework version of the Coffee Break server, you can run the Coffee Break client by opening the Coffee Break server URL in a Web browser:

http://localhost:8080/cbserver/orderForm 

If you have installed the JavaServer Faces technology version of the Coffee Break server, you can run the JavaServer Faces version of the Coffee Break client by opening this URL in a Web browser:

http://localhost:8080/cbserver-jsf/faces/orderForm.jsp 

You should see a page something like the one shown in Figure 35-2.

Coffee Break Order Form

Figure 35-2 Order Form

After you have gone through the application screens, you will get an order confirmation that looks like the one shown in Figure 35-3.

Coffee Break Order Confirmation

Figure 35-3 Order Confirmation

Removing the Coffee Break Application

To remove the Coffee Break application, perform the following steps:

  1. Undeploy the JAX-RPC and SAAJ services and the Coffee Break server using deploytool or the Admin Console.
  2. Stop the Application Server.

If you want to remove the build and dist directories, run ant clean in each directory, including <INSTALL>/j2eetutorial14/examples/cb/common/.

Divider
Download
FAQ
History
PrevHomeNext API
Search
Feedback
Divider

All of the material in The J2EE(TM) 1.4 Tutorial is copyright-protected and may not be published in other works without express written permission from Sun Microsystems.