FileDocCategorySizeDatePackage
ProfileClient.javaAPI DocExample4321Thu Dec 15 21:05:22 GMT 2005com.oreilly.jent.ejb.containerManaged

ProfileClient

public class ProfileClient extends Object
In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you're reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O'Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product's documentation does require permission. We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: "Java Enterprise in a Nutshell, Third Edition, by Jim Farley and William Crawford with Prakash Malani, John G. Norman, and Justin Gehtland. Copyright 2006 O'Reilly Media, Inc., 0-596-10142-2." If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at permissions@oreilly.com.

Fields Summary
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] args)

        String name = null;
        if (args.length > 0) {
            name = args[0];
        }
        
        try {
            // Get a JNDI context from our EJB server, using the 
            // properties in jndi.properties 
            Context context = new InitialContext();
            
            // Create a profile server
            ProfileHome pHome =
                (ProfileHome)context.lookup("ejb/CMPProfile");
            
            // If a name is specified, look for that person's profile
            if (name != null) {
                // Ask the server for the person's profile
                // First, see if this person already has a profile
                System.out.println("Looking for profile for " + name);
                Profile profile = null;
                try {
                    profile = pHome.findByPrimaryKey(name);
                }
                catch (Exception e) {
                    System.out.println("Exception while looking up profile.");
                }
                
                if (profile == null) {
                    System.out.println("Creating profile for " + name);
                    profile = pHome.create(name);
                    // Set some entries in the profile
                    if (args.length < 2 || !args[1].equals("empty")) {
                        System.out.println("Setting profile entries for " + name);
                        profile.setEntry("favoriteColor", "blue");
                        profile.setEntry("language", "German");
                    }
                    else {
                        System.out.println("Empty profile created for " + name);
                    }
                }
                
                // Get the entries from the profile
                System.out.println("Getting profile entries for " + name);
                System.out.println("\tFavorite color: " +
                                   profile.getEntry("favoriteColor"));
                System.out.println("\tLanguage: " + profile.getEntry("language"));
            }
            // If no name given, get all emtpy profiles and print their names
            else {
                Collection eProfs = pHome.findEmptyProfiles();
                System.out.println("Empty profiles:");
                Iterator iter = eProfs.iterator();
                while (iter.hasNext()) {
                    Profile p = (Profile)iter.next();
                    System.out.println("\t" + p.getName());
                }
            }
        }
        catch (NoSuchPersonException nspe) {
            System.out.println("Invalid person: " + name);
        } 
        catch (Exception e) {
            System.out.println("Error while creating/using profile.");
            e.printStackTrace();
        }