Package examples.ejb20.basic.beanManaged

This example is a package that demonstrates an EJB.

 

Interface Summary

Account 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.

 

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 EJB. The example is an entity EJB called AccountBean.

The example demonstrates:

  • Usage of an entity EJB
  • Bean-managed persistence; the code in the EJB directly accesses the data storage
  • Using application-defined exceptions
  • Client application

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

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 EJB, which classes are used for the different objects and interfaces, then look at Client code to see how the application works.

Pre-Built Examples

This EJB 2.0 example is shipped pre-built. However, if you want to re-run this example, you can build it following the instructions in Build the example and then re-run it following the instructions in Run the example.

These four sections cover what to do:

  1. Set Up the database
  2. Build the example
  3. Start the Examples server
  4. Run the example

Set Up the database

This example is preconfigured to work with the PointBase database, included with the WebLogic Server distribution. As you'll use a database for the persistent storage of the entity EJB, you'll need to set it up. The persistent storage is completely invisible to the client; the actual storage is handled by the EJB directly and not the container.

With database persistence, each instance of an EJB is written to a row in a table. If you want or need to run this example with Oracle, see Database SetUp for instructions.

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:

prompt> ant

The script will build the example and place the files in the correct locations in your WebLogic Server distribution:

  • Client.jar file: in SAMPLES_HOME\server\examples\build\clientclasses
  • EJB (in EAR file): in SAMPLES_HOME\domains\examples\applications\ejb_basic_beanManaged.ear

Running the build script places the EJB in the %applications% directory, 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 More About Building Examples.

Start the Examples server

  1. Start the Examples Server.

    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:
      prompt> ant run  

  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 EJBeanManagedClient.jsp example, you should get output similar to this:
    
    Looking up account 10020 ... 
    Account 10020 found; balance is $3100.0 
    
    
    Part A:
    Deposit and attempt to withdraw more than the current account balance. An application-specific exception should be thrown:- 
    Current Balance: $ 3100.0 
    Depositing: $ 100.0 
    
    New balance: $ 3200.0 
    
    
    
    PartB:
    Withdraw an amount greater than current balance. Expecting an exception... 
    Received expected Processing Error:Request to withdraw $3210.0 more than balance 3200.0 in account 10020 
     
    
    Part C
    Create some new accounts, with different initial balances. Find all the accounts with a balance greater than a specific value. When finished, the new accounts are removed. 
    
    Created account: 10440578742420 with balance: $ 0.0 
    Created account: 10440578742421 with balance: $ 100.0 
    Created account: 10440578742422 with balance: $ 200.0 
    Created account: 10440578742423 with balance: $ 300.0 
    Created account: 10440578742424 with balance: $ 400.0 
    
    Success: 5 accounts successfully created 
    
    Querying for accounts with a balance greater than 700.0   
    10020 3200.0 
    
    
    Now Removing the accounts we just created... 
    Removed account: 10440578742420
    Removed account: 10440578742421
    Removed account: 10440578742422
    Removed account: 10440578742423
    Removed account: 10440578742424 
    
    
    

There's more...

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