All Examples All EJB Examples
This example is a package that demonstrates an Enterprise JavaBean. Please run this example before attempting to create your own Enterprise JavaBeans, as it will show you the different steps involved. The example is an entity EJBean called AccountBean.
The example demonstrates:
Call this servlet using an appropriate URL as described in the servlet directions. View the changes taking place in the bean by reloading the servlet (use the Reload button).
To get the most out of this example, first read through the source code files. Start with DeploymentDescriptor.txt to find the general structure of the EJBean, which classes are used for the different objects and interfaces, then look at Client.java to see how the application works.
In general, you'll need to adjust certain WebLogic Server properties to match your setup. You'll need to set up the persistent storage of the EJBean.
You'll use a database for the persistent storage of the entity EJBean. Note that the persistent storage is completly invisible to the client; the actual storage is handled automatically by the container and not by the EJBean.
This example is shipped "pre-built"; you can either run it as shipped, or build the example and run it to test that you are able to successfully build and run EJBeans.
These three sections cover what to do:
We provide separate build scripts for Windows NT and UNIX:
The "build" scripts build individual examples, such as this entry for Windows:
$ build basic containerManagedTo build under Microsoft's JDK for Java, use
$ build basic containerManaged -msThese scripts will build the example and place the files in the correct locations:
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.
You'll need to:
"create table ejbAccounts (id varchar(15), bal float, type varchar(15))"
# You can use this connection pool with any of the EJBean examples. # Uncomment to use: weblogic.jdbc.connectionPool.demoPool=\ url=jdbc:cloudscape:demo,\ driver=COM.cloudscape.core.JDBCDriver,\ initialCapacity=1,\ maxCapacity=2,\ capacityIncrement=1,\ props=user=none;password=none;server=noneYou can use this pool for Cloudscape. For other databases, you'll need to set an appropriate url and driver, such as
url=jdbc:weblogic:oracle,\ driver=weblogic.jdbc.oci.Driver,\
# Add an ACL for the connection pool: weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone
If you use a connection pool or table other than "demoPool" and "ejbAccounts", you'll need to use the Deployment Wizard to set the appropriate values in the "Persistence" pane and regenerate the EJBean.
If you need more information about how to use connection pools, read Using WebLogic JDBC: Using connection pools.
We provide a commented-out version in the property that begins with "weblogic.ejb.deploy" that you can use. You'll need to adjust the property depending on which EJBeans you're building and are deploying, or if the location of the files differs from the installed location.
Note: If you're running under the Microsoft SDK for Java, you'll also need to add the path to the .jar to the CLASSPATH for your WebLogic Server.
If you're starting the Server from the command line, you'll need to add an entry such as c:/weblogic/eval/cloudscape/lib/cloudscape.jar to the Java system classpath before starting the server, as described in the Administrators Guide Setting up and starting the WebLogic Server.
You can check that the EJBean has been deployed correctly either by checking the server command line window, or by opening the Console and examining "EJB" under the "Distributed objects"; you should see containerManaged.AccountHome deployed, and can monitor its activity.
$ java examples.ejb.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.ejb.basic.containerManaged.Client "t3://WebLogicURL:Port"
where:
Parameters are optional, but if any are supplied, they are interpreted in this order:
Beginning containerManaged.Client... Looking up account 10020... Account 10020 found; balance is $3100.0; type: Checking Part A: Depositing $100.0 Current balance is $3200.0 Withdrawing amount greater than current balance. Expecting an exception... Received expected Processing Error: examples.ejb.basic.containerManaged.ProcessingErrorException: Request to wit hdraw $3210.0; is more than balance $3200.0 in account 10020 Part B: Creating 5 new accounts... Created account: 9168557035480; balance is $0.0; type: Checking Created account: 9168557035481; balance is $100.0; type: Checking Created account: 9168557035482; balance is $200.0; type: Checking Created account: 9168557035483; balance is $300.0; type: Checking Created account: 9168557035484; balance is $400.0; type: Checking 5 accounts successfully created Creating an account with a null balance... Querying for accounts with a balance greater than 50.0...ordered by Account ID Account 10020; balance is $3200.0; type: Checking Account 9168557035481; balance is $100.0; type: Checking Account 9168557035482; balance is $200.0; type: Checking Account 9168557035483; balance is $300.0; type: Checking Account 9168557035484; balance is $400.0; type: Checking Querying for accounts with a balance greater than 50.0...in descending order Account 9168557035484; balance is $400.0; type: Checking Account 9168557035483; balance is $300.0; type: Checking Account 9168557035482; balance is $200.0; type: Checking Account 9168557035481; balance is $100.0; type: Checking Account 10020; balance is $3200.0; type: Checking Querying for an account with a balance of $200.0... Account 9168557035482; balance is $200.0; type: Checking Querying for an account with a type 'null' Account 9168557035485; balance is $0.0; type: null Removing all accounts just created... Removed account: 9168557035480 Removed account: 9168557035481 Removed account: 9168557035482 Removed account: 9168557035483 Removed account: 9168557035484 Removed account: 9168557035485 End containerManaged.Client...
$ java examples.ejb.basic.containerManaged.MultiClientand the Servlet examples.
Note: you can only run one instance of the MultiClient at a time; it creates the multiple clients as separate threads, and is dependent on there being only one instance of the MultiClient to monitor the outcome of the example.
Read more about using the EJB Deployment Wizard in the Administrators Guide, Using the WebLogic EJB Deployment Wizard.
Copyright © 1997-1999 BEA Systems, Inc. All rights reserved.
Last updated 09/24/1999