RE: Sametime Server Toolkit - Access not privileged Mohar H Bhise 24.Nov.03 10:21 PM a Web browser Deverloper Toolkits 3.0Windows NT/2000
Thanks Everyone. Your suggestions worked perfectly and I am able to login as a server application.
There is one more issue however.
The method evt.getAttrList() returns null rather than returning the buddylist Vector.
public void attrQueried(StorageEvent evt)
{
log(">> attribute queried code = " + Integer.toHexString(evt.getRequestResult()) );
if (evt.getAttrList() == null)
log("***** Attr List is null");
log("vector is null" + (v == null));
}
I get an exception that vector v is null.
I wait for the Storage Service to be available, before resolving the username. It seems that everything goes fine till here and the username is resolved. Then I query for attribute 0 using:
m_storageService.queryAttr(m_user, 0);
The attrQueried event is fired. I get an result code of ST_FAIL (80000000) in this event. I then get a null value for evt.getAttrList().
I have tried this experiment for different users.
Here is a more detailed code snippet:
void initSametime()
{
try
{
m_session = new STSession("" + this );
loadComponents();
m_session.start();
}
catch (DuplicateObjectException e) {}
private void loginToServer(String serverName)
{
m_saService.addLoginListener(this);
short loginType = STUserInstance.LT_SERVER_APP;
Connection[] connections = {
new SocketConnection(port, 17000)};
m_saService.setConnectivity(connections);
log(">> login to sametime server name is " + serverName);
m_saService.loginAsServerApp( serverName, loginType, "ddd", null);
try
{
synchronized(this)
{
log(">> Waiting ....see if log in event returns control back");
wait();
}
}
catch (InterruptedException e)
{
log(">> CAught Interrupted Exception");
}
log(">> Yes, control returned");
}
public void loggedIn(LoginEvent event)
{
log(">> loggedIn to Sametime Server "+ Integer.toHexString(event.getReason()) );
m_storageService.addStorageServiceListener(this);
synchronized(this)
{
notify();
}
}
public void loggedOut(LoginEvent event){ }
public void serviceUnavailable(StorageEvent evt){ }
public void serviceAvailable(StorageEvent evt)
{
log(">> Storage service available");
synchronized(this)
{
notify();
}
}
public void doPost()
{
log(">> Inside doPost....");
m_userName = username;
log(">> do post user name is " + m_userName);
synchronized(this)
{
try
{
log(">> waiting for storage service to be available");
wait();
}
catch (InterruptedException e)
{}
}
resolveUserName();
synchronized(this)
{
try
{
log(">> waiting for user name to be resolved");
wait();
}
catch (InterruptedException e)
{}
}
log(">> creating response...");
createResponse();
}
private void resolveUserName()
{
log(">> Resolving user name....");
m_resolver.resolve(m_userName);
log(">> Invoked the Resolver");
}
public void resolved(ResolveEvent event)
{
log(">> User Name Resolved");
STObject obj = event.getResolved();
m_user = new STUser(obj.getId(), m_userName, "", "") ;
log(">> " + m_user.getDisplayName());
log(">> Trying to query user attribute...");
if(m_user == null) {log(">> m_user is NULL");}
m_storageService.queryAttr(m_user, query_no);
log(">>Sent a query...");
}