WebLogic Server 6.1 Code Examples, BEA Systems, Inc.

Package examples.ejb20.basic.containerManaged

This example is a package that demonstrates anEnterprise JavaBean written to the EJB 2.0 specification.The example is an entity EJBean calledAccountBean.

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.
 

Class Summary
AccountBean AccountBean is an EntityBean.
Client This class demonstrates calling an entity EJBean, followed by two exercises:
 

Exception Summary
ProcessingErrorException This class is used with the WebLogic EJBean container-managed example package.
 

Package examples.ejb20.basic.containerManaged Description

This example is a package that demonstrates anEnterprise JavaBean written to the EJB 2.0 specification.The example is an entity EJBean calledAccountBean.

The example demonstrates:

Pre-Built Examples

The EJB 2.0 examples included in the WebLogic Server 6.1 distribution are not shipped pre-built. To run these examples, you must build the example following the specific examples instructions.

Client application

TheClientapplication performs these steps:
  1. Finds or creates 20 separate accounts
  2. Displays the balance for each account
  3. Finds all accounts with balances over $5000
  4. Finds the first account with a balance of zero
  5. Finds any accounts with a null type
  6. Removes all accounts

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

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

You'll need to set up the persistent storage of theEJBean. You'll use a database for the persistent storage of the entity EJBean. Each instance of an EJBean is written to a row in a table. The table (ejbAccounts) must be created and exist in the databasebefore the example is run.

If you are using the evaluation copy of Cloudscape that is included with WebLogic Server, this tablehas already been created in the "demo" database. If you're using a database other than Cloudscape, you'll need tocreate the table in your database using an appropriate SQLstatement such as

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

Note that the persistent storage is completely invisible to theclient; the actual storage is handled automatically by the containerand not by the EJBean. All database properties, such as the loginname and password, are defined in the connection pool. A preconfigured connection pool is included in the example server.

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 a build script for you to build the example:

The build script is build.xml.

Run the build script using the following Java ant command:
        $ant

The script will build the example and place the files in thecorrect 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 scriptsis 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 pane.

  6. Verify that the examplesServer is choosen as the target for the EJB.

  7. 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 preconfigured to allowaccess for everyone.

    If you need more information about how to use connection pools, read UsingWebLogic JDBC: Using connection pools.

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.containerManaged.Client

    If you're not running the WebLogic Server with its default settings,you will have to run the client using:

    $ java examples.ejb20.basic.containerManaged.Client "t3://WebLogicURL:Port"

    where:

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

  2. You should receive output similar to this:
    Beginning containerManaged.Client...Starting Part A of the example...Creating account 10020 with a balance of 3000.0 account type Savings...Account 10020 successfully createdPart A: Depositing $2000Current balance is $5000.0Attempting to withdraw an amount greater than current balance. Expecting an exception...Received expected Processing Error:examples.ejb.basic.containerManaged.ProcessingErrorException: Request to withdraw $5001.0; is more than balance $5000.0 in account 10020Removing account...End Part A of the example...Starting Part B of the example...Creating account ID: 0 with a balance of 0.0 account type null...Account ID: 0 successfully createdCreating account ID: 1 with a balance of 1000.0 account type Savings...Account ID: 1 successfully createdCreating account ID: 2 with a balance of 2000.0 account type Savings...Account ID: 2 successfully createdCreating account ID: 3 with a balance of 3000.0 account type Savings...Account ID: 3 successfully createdCreating account ID: 4 with a balance of 4000.0 account type Savings...Account ID: 4 successfully createdCreating account ID: 5 with a balance of 5000.0 account type null...Account ID: 5 successfully createdCreating account ID: 6 with a balance of 6000.0 account type Savings...Account ID: 6 successfully createdCreating account ID: 7 with a balance of 7000.0 account type Savings...Account ID: 7 successfully createdCreating account ID: 8 with a balance of 8000.0 account type Savings...Account ID: 8 successfully createdCreating account ID: 9 with a balance of 9000.0 account type Savings...Account ID: 9 successfully createdCreating account ID: 10 with a balance of 10000.0 account type null...Account ID: 10 successfully createdCreating account ID: 11 with a balance of 11000.0 account type Savings...Account ID: 11 successfully createdCreating account ID: 12 with a balance of 12000.0 account type Savings...Account ID: 12 successfully createdCreating account ID: 13 with a balance of 13000.0 account type Savings...Account ID: 13 successfully createdCreating account ID: 14 with a balance of 14000.0 account type Savings...Account ID: 14 successfully createdCreating account ID: 15 with a balance of 15000.0 account type null...Account ID: 15 successfully createdCreating account ID: 16 with a balance of 16000.0 account type Savings...Account ID: 16 successfully createdCreating account ID: 17 with a balance of 17000.0 account type Savings...Account ID: 17 successfully createdCreating account ID: 18 with a balance of 18000.0 account type Savings...Account ID: 18 successfully createdCreating account ID: 19 with a balance of 19000.0 account type Savings...Account ID: 19 successfully createdAccount: :ID: 0 has a balance of 0.0Account: :ID: 1 has a balance of 1000.0Account: :ID: 2 has a balance of 2000.0Account: :ID: 3 has a balance of 3000.0Account: :ID: 4 has a balance of 4000.0Account: :ID: 5 has a balance of 5000.0Account: :ID: 6 has a balance of 6000.0Account: :ID: 7 has a balance of 7000.0Account: :ID: 8 has a balance of 8000.0Account: :ID: 9 has a balance of 9000.0Account: :ID: 10 has a balance of 10000.0Account: :ID: 11 has a balance of 11000.0Account: :ID: 12 has a balance of 12000.0Account: :ID: 13 has a balance of 13000.0Account: :ID: 14 has a balance of 14000.0Account: :ID: 15 has a balance of 15000.0Account: :ID: 16 has a balance of 16000.0Account: :ID: 17 has a balance of 17000.0Account: :ID: 18 has a balance of 18000.0Account: :ID: 19 has a balance of 19000.0Querying for accounts with a balance greater than 5000.0...Account ID: 6; balance is $6000.0Account ID: 7; balance is $7000.0Account ID: 8; balance is $8000.0Account ID: 9; balance is $9000.0Account ID: 10; balance is $10000.0Account ID: 11; balance is $11000.0Account ID: 12; balance is $12000.0Account ID: 13; balance is $13000.0Account ID: 14; balance is $14000.0Account ID: 15; balance is $15000.0Account ID: 16; balance is $16000.0Account ID: 17; balance is $17000.0Account ID: 18; balance is $18000.0Account ID: 19; balance is $19000.0Querying for an account with zero balance...Account ID: 0; balance is zeroQuerying for accounts with a null account typeAccount ID: 0; account type is nullAccount ID: 5; account type is nullAccount ID: 10; account type is nullAccount ID: 15; account type is nullRemoving beans...End Part B of the example...End containerManaged.Client...

There's more...Read more about:


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

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