String name = args[0];
try {
// Get a JNDI context for our EJB server
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
// For Ejbhome server
"com.ejbhome.naming.spi.rmi.RMIInitCtxFactory");
// Following two lines for WebLogic server
// "weblogic.jndi.T3InitialContextFactory");
// p.put(Context.PROVIDER_URL, "t3://localhost:7001");
Context context = new InitialContext(p);
// Create a profile server
ProfileHome pHome =
(ProfileHome)context.lookup("entity.beanManaged.ProfileHome");
// 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(new ProfilePK(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
System.out.println("Setting profile entries for " + name);
profile.setEntry("favoriteColor", "blue");
profile.setEntry("language", "German");
}
// 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"));
// Change the entries
profile.setEntry("favoriteColor", "red");
profile.setEntry("language", "Italian");
// Get the updated 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"));
}
catch (Exception e) {
System.out.println("Error while creating/using profile.");
e.printStackTrace();
}