WebLogic Server 6.0 Code Examples, BEA Systems, Inc.

Package examples.ejb20.basic.beanManaged

This example is a package that demonstrates an Enterprise JavaBean.

See:
          Description

Interface Summary
Account The methods in this interface are the public face of AccountBean.
AccountHome This interface is the home interface for the EJBean AccountBean, which in WebLogic is implemented by the code-generated container class AccountBeanC.
 

Class Summary
AccountBean AccountBean is an EntityBean.
Client This class demonstrates calling an entity EJBean.
Servlet This servlet is a program similar to the examples.ejb20.basic.beanManaged.Client example.
 

Exception Summary
ProcessingErrorException ProcessingErrorException is thrown if the caller attempts to withdraw more than a certain preset limit from the account.
 

Package examples.ejb20.basic.beanManaged Description

This example is a package that demonstrates an Enterprise JavaBean. The example is an entity EJBean called AccountBean.

The example demonstrates:

Before Running the EJB 2.0 Examples

Before you can build and run the EJB 2.0 examples, you must first download the WebLogic Server 6.0 supplement, ejb20.jar, from the BEA product download page. This allows you to use the Enterprise JavaBeans features in the WebLogic Server 6.0 environment. Until you install the ejb20.jar file, you will be unable to build and run the EJB 2.0 examples.

Pre-Built Examples

The EJB 2.0 examples included in the WebLogic Server 6.0 distribution are not shipped pre-built. To run these examples, you must first download ejb20.jar and then build the example following the specific examples instructions.

Client application

The Client application performs these steps:
  1. Finds or creates 20 separate accounts
  2. Prints the balances for all accounts
  3. Finds all accounts with a balance greater than $5000
  4. Removes the accounts

The Servlet runs in a similar fashion to the Client example. Call the servlet using an appropriate URL as described in the servlet directions. See Run the example for sample servlet output.

To get the most out of this example, first read through the source code files.

Start with the XML deployment files ejb-jar.xml and weblogic-ejb-jar.xml to find the general structure of the EJBean, which classes are used for the different objects and interfaces, then look at Client code to see how the application works.

As you'll use a database for the persistent storage of the entity EJBean, you'll need to set it up. Note that the persistent storage is completely invisible to the client; the actual storage is handled by the EJBean directly and not the container.

These three sections cover what to do:

  1. Build the example
  2. Configure the server
  3. Run the example

Build the example

Set up your development shell as described in Setting up your environment.

We provide separate build scripts for Windows NT and UNIX:

These scripts build the example and place the files in the correct locations in your WEbLogic Server distribution:

Running the build script places the EJB in /config/examples/applications, where it automatically deploys once the server is started. If you are already running the server and build another EJB, it is automatically placed in this directory and instantly deployed.

Additional information on using the build scripts is found in Building Enterprise JavaBean examples

Configure the server

  1. Start the WebLogic Server.

  2. Start the Administration Console.

  3. Click to expand the Deployments node in the left pane and select EJB Deployments.

    A list of deployed EJBs displays.

  4. Choose the appropriate deployment unit from the list.

  5. Select the Target tab in the right-hand pane.

  6. Verify that the EJB is deployed on the examplesServer.

    This example contains a pre-configured servlet running in a browser called examplesWebApp.

  7. Click the Web Applications node in the left-hand pane and select examplesWebApp.

  8. In the right-hand pane, select the Target tab, and verify that the examplesWebApp is deployed on the examplesServer.

  9. Set the database persistence.

    With database persistence, each instance of an EJBean is written to a row in a table. The table (ejbAccounts) must be created and exist in the database before the example is run. If you are using the evaluation copy of Cloudscape that is included with WebLogic, this table has already been created in the "demo" database. If you're using a database other than Cloudscape, you'll need to create the table in your database using an appropriate SQL statement such as

    "create table ejbAccounts (id varchar(15), bal float, type varchar(15))"

  10. Setup a connection pool in the Administration Console .

    For your convenience, a sample connection pool, called demoPool is included with this example. You can use this connection pool with any of the EJB examples.

    You'll need to:

    In this example, the fileRealm for the access control list (ACL) is pre-configured to allow access for everyone.

    If you need more information about how to use connection pools, read Programming WebLogic JDBC.

Run the example

  1. Run the client in a separate command line window. Set up your client as described in Setting up your environment, and then run the client by entering:
    $ java examples.ejb20.basic.beanManaged.Client "t3://WebLogicURL:Port"

    where:

    WebLogicURL
    Domain address of the WebLogic Server
    Port
    Port that is listening for connections (weblogic.system.ListenPort)

  2. If you're running the Client example, you should get output similar to this from the client application:
    Beginning beanManaged.Client...
    
    Trying to find account with id: ID: 0
    Trying to find account with id: ID: 1
    Trying to find account with id: ID: 2
    Trying to find account with id: ID: 3
    Trying to find account with id: ID: 4
    Trying to find account with id: ID: 5
    Trying to find account with id: ID: 6
    Trying to find account with id: ID: 7
    Trying to find account with id: ID: 8
    Trying to find account with id: ID: 9
    Trying to find account with id: ID: 10
    Trying to find account with id: ID: 11
    Trying to find account with id: ID: 12
    Trying to find account with id: ID: 13
    Trying to find account with id: ID: 14
    Trying to find account with id: ID: 15
    Trying to find account with id: ID: 16
    Trying to find account with id: ID: 17
    Trying to find account with id: ID: 18
    Trying to find account with id: ID: 19
    Account: :ID: 0 has a balance of 0.0
    Account: :ID: 1 has a balance of 1000.0
    Account: :ID: 2 has a balance of 2000.0
    Account: :ID: 3 has a balance of 3000.0
    Account: :ID: 4 has a balance of 4000.0
    Account: :ID: 5 has a balance of 5000.0
    Account: :ID: 6 has a balance of 6000.0
    Account: :ID: 7 has a balance of 7000.0
    Account: :ID: 8 has a balance of 8000.0
    Account: :ID: 9 has a balance of 9000.0
    Account: :ID: 10 has a balance of 10000.0
    Account: :ID: 11 has a balance of 11000.0
    Account: :ID: 12 has a balance of 12000.0
    Account: :ID: 13 has a balance of 13000.0
    Account: :ID: 14 has a balance of 14000.0
    Account: :ID: 15 has a balance of 15000.0
    Account: :ID: 16 has a balance of 16000.0
    Account: :ID: 17 has a balance of 17000.0
    Account: :ID: 18 has a balance of 18000.0
    Account: :ID: 19 has a balance of 19000.0
    
    Querying for accounts with a balance greater than 5000.0...
    Account ID: 6; balance is $6000.0
    Account ID: 7; balance is $7000.0
    Account ID: 8; balance is $8000.0
    Account ID: 9; balance is $9000.0
    Account ID: 10; balance is $10000.0
    Account ID: 11; balance is $11000.0
    Account ID: 12; balance is $12000.0
    Account ID: 13; balance is $13000.0
    Account ID: 14; balance is $14000.0
    Account ID: 15; balance is $15000.0
    Account ID: 16; balance is $16000.0
    Account ID: 17; balance is $17000.0
    Account ID: 18; balance is $18000.0
    Account ID: 19; balance is $19000.0
    Removing beans...
    
    End beanManaged.Client...
    
  3. If you're running the servlet example, you should get output similar to this:
    Using user user1 and password user1Password
    
    
    Looking up account 10020...
    Did not find 10020
    Account 10020 being created; opening balance is $3000.0
    
    
    Part A: Depositing $100.0
    Current balance is $3100.0
    
    
    Withdrawing amount greater than current balance. Expecting an
    exception...
    Received expected Processing Error:
    examples.ejb20.basic.beanManaged.ProcessingErrorException: Request to
    withdraw $3110.0 more than balance 3100.0 in account 10020
    
    
    Part B: Creating 5 new accounts...
    Created account: 9543031558300; balance is $0.0
    Created account: 9543031558301; balance is $100.0
    Created account: 9543031558302; balance is $200.0
    Created account: 9543031558303; balance is $300.0
    Created account: 9543031558304; balance is $400.0
    
    
    5 accounts successfully created
    
    
    Querying for accounts with a balance greater than 200.0...
    Account 10020; balance is $3100.0
    Account 9543031558303; balance is $300.0
    Account 9543031558304; balance is $400.0
    
    
    Removing accounts just created...
    Removed account: 9543031558300
    Removed account: 9543031558301
    Removed account: 9543031558302
    Removed account: 9543031558303
    Removed account: 9543031558304
    
    
    End beanManaged.Servlet...

There's more...

Read more about EJB in BEA WebLogic Server Enterprise Java Beans.


Documentation is available at
http://e-docs.bea.com/wls/docs60

Copyright © 2000 BEA Systems, Inc. All Rights Reserved.