} }

 Files   Prepare   Run   Troubleshooting   Related Topics 

 

About the Example

This example is a package that demonstrates the use of an entity Enterprise JavaBean to interact with a Java EE Connector resource adapter. The example is an entity EJBean called AccountBean. In this example, which uses the Black Box resource adapter from the Sun reference implementation, the resource adapter does not use the Common Client Interface (CCI). Instead, it uses JDBC to interact with a DBMS.

The example demonstrates:

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 ConnectorServlet runs in a similar fashion to the Client example. 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 figure out the general structure of the EJBean and 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 will 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.


 

Files Used in the Example

Directory Location:

MW_HOME/wlserver_10.3/samples/server/examples/resadapter/simple

(where MW_HOME is the directory containing your WebLogic Server installation)

File

Click source files to view code.

Description

AccountBean.java

AccountBean is an EntityBean. This EJBean illustrates:

  • EJBean-managed persistence and transactions; the code in this file directly accesses the data storage.
  • Application-defined exceptions.
build.xml Ant build file that contains targets for building and running the example.
Client.java This class demonstrates calling an entity EJBean. This class also illustrates how to lookup an EJB home in the JNDI tree.
ProcessingErrorException.java ProcessingErrorException is thrown if the caller attempts to withdraw more than a certain preset limit from the account.

 

Prepare the Example

 

Prerequisites

Before working with this example:

  1. Install WebLogic Server, including the examples.
  2. Start the Examples server.
  3. Set up your environment.

 

Configure WebLogic Server

  No special configuration is required for this example

 

Build and Deploy the Example

  1. Start a command window.
  2. In your command window, set up your development shell as described in Quick Start.
  3. Change to the SAMPLES_HOME\server\examples\src\examples\resadapter\simple directory, where SAMPLES_HOME refers to the main WebLogic Server examples directory, such as d:\Oracle\Middleware\wlserver_10.3\samples.
  4. Assemble and compile the example by executing the Ant utility at the command line:

    prompt> ant

    The Ant command uses the build.xml file, located in the SAMPLES_HOME\server\examples\src\examples\resadapter\simple directory, to build the example and place the files in the correct locations in your WebLogic Server distribution:

    Running the build script places the EJB in /domain/examples/autodeploy, 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.


 

Run the Example

  1. Complete the steps in the "Prepare the Example" section.
  2. 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
  3. If you are running the client example, you should get output similar to this:

    Beginning resadapter.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 resadapter.Client...

  4. If you are running the servlet example, you should get output similar to this: (by issuing "ant run.webapp")

    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.resadapter.simple.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 resadapter.resadapterServlet..


 

Troubleshooting


 

Related Topics

(Internet connection required.)