09-20-06 12:30 AM
The easiest way is invoquing the MemberService EJB. You can do this like tha
t:
public void createUserInGroup(String userName, Map attributes)
throws IOException, WMMException {
Member user = MemberFactory.getInstance(Member.MEMBER_TYPE_PERSON);
String memberDN = "uid=" + userName + "," + BASE_DN;
String memberUniqueId = userName;
MemberIdentifier mi = MemberIdentifierFactory.getInstance(memberDN,
memberUniqueId);
user.setMemberIdentifier(mi);
String pMemberDN = BASE_DN;
String pMemberUniqueId = "";
MemberIdentifier pmi = MemberIdentifierFactory.getInstance(pMemberDN,
pMemberUniqueId);
user.setParentMemberIdentifier(pmi);
Attribute uid = AttributeFactory.getInstance("uid", userName);
user.addAttribute(uid);
Set set = attributes.entrySet();
for (Iterator iter = set.iterator(); iter.hasNext(); ) {
Map.Entry entry = (Map.Entry) iter.next();
Attribute att = AttributeFactory.getInstance(entry.getKey()
.toString(), entry.getValue());
user.addAttribute(att);
}
mm.createMember(user);
}
where mm is contains a reference of an instance of com.ibm.websphere.wmm.obj
ects.MemberService
which can be obtained as
String jndiPath = "ejb/MemberServiceHome";
String contextFactory = "com.ibm.websphere.naming.WsnInitialContextFactory";
;
String host = "host.name";
String port = "2811";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
env.put(Context.PROVIDER_URL, "iiop://" + host + ":" + port);
Context initial = new InitialContext(env);
Object objref = initial.lookup(jndiPath);
MemberServiceHome home = (MemberServiceHome) PortableRemoteObject
.narrow(objref, MemberServiceHome.class);
mm = home.create();
You have to include in the classpath
<portal>/AppServer/lib/namingclient.jar
<portal>/AppServer/lib/naming.jar
<portal>/AppServer/lib/wmm.ejb.jar
<portal>/AppServer/lib/wmm.jar
<portal>/AppServer/lib/j2ee.jar
[ Post a follow-up to this message ]
|