Pessoal, estou desenvolvendo um projeto em Agentes Móveis usando o Aglets. Preciso criar meu próprio servidor que fique independente do framework Tahiti. 
Peguei diversos códigos, mais a maioria dá erro. Fiz os devidos ajustes de Contexto, configuração do properties, e as devidas configurações dos arquivos security, keystore e props tanto do java quanto do aglets. A segurança do java esta com a propriedade AllPermission ativada. :?
Mesmo assim dá o seguinte erro:
java.security.AccessControlException: access denied (com.ibm.aglets.security.ContextPermission context start)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at com.ibm.aglets.AgletContextImpl.checkPermission(Unknown Source)
at com.ibm.aglets.AgletContextImpl.start(Unknown Source)
at com.ibm.aglets.AgletContextImpl.start(Unknown Source)
at ssdetect.agent.AgentFramework.tahitiInit(AgentFramework.java:95)
at ssdetect.agent.AgentFramework.bootstrap(AgentFramework.java:158)
at ssdetect.agent.AgentFramework.<init>(AgentFramework.java:142)
at ssdetect.agent.AgentFramework.main(AgentFramework.java:165)
Alguem já fez algo semelhante? Sabe me dizer o que devo fazer ou setar para solucionar o problema?
Segue abaico o código do nosso servidor.
import java.io.IOException;
import java.net.*;
import java.util.*;
import com.ibm.aglet.*;
import com.ibm.aglet.security.Protections;
import com.ibm.aglet.system.ContextEvent;
import com.ibm.aglets.* ;
import com.ibm.aglets.security.AgletPermission;
import com.ibm.aglets.security.ContextPermission;
import com.ibm.aglets.tahiti.*;
import com.ibm.maf.*;
public class ArenaSRVAglets{
com.ibm.aglet.system.AgletRuntime runtime;
private String username;
private String password;
private String port;
private String keystore;
private String policy;
AgletContext context;
MAFAgentSystem maf_system;
Properties props;
public ArenaSRVAglets(String args[]){
try{
username = "aglet_key";//args[2];
password = "aglets";//args[3];
port = "4434";//args[4];
keystore = "C:/aglets/bin/.keystore";//args[0];
policy = "c:/aglets/security/aglets.policy";//args[1];
}catch(Exception ex){
ex.printStackTrace();
}
}
public void setup(){
props = System.getProperties();
//Setup das propriedades
props.put("atp.resolve","true");
props.put("atp.useip","true");
props.put("maf.port",port);
props.put("maf.protocol","atp");
props.put("java.policy",policy);
props.put("aglets.keystore.file",keystore);
props.put("maf.finder.port","4435");
props.put("maf.finder.host","localhost");
props.put("maf.finder.name","MAFFinder");
props.put("aglets.logger.class",
"org.aglets.log.console.ConsoleInitializer");
props.put("aglets.logfile","aglets.log");
String initializerName = System.getProperty("aglets.logger.class",
"org.aglets.log.console.ConsoleInitializer");
System.setProperties (props);
try {
Class.forName(initializerName);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}
public void start() throws IOException, AgletException, ClassNotFoundException, InstantiationException {
this.setup();
runtime = runtime.init(null);
runtime.authenticateOwner(username, password);
maf_system = new MAFAgentSystem_AgletsImpl(runtime);
String protocol = "atp";
try {
MAFAgentSystem.initMAFAgentSystem(maf_system, protocol);
// Usando o Thaiti para iniciar as classes
Tahiti.installFactories();
Tahiti.installSecurity();
// Criando o contexto
context = runtime.createAgletContext("agente");
MAFAgentSystem.startMAFAgentSystem(maf_system, protocol);
context.start(); // É aqui que dá "PAU"
} catch (MAFExtendedException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) throws IOException, AgletException, ClassNotFoundException, InstantiationException {
ArenaSRVAglets simple = new ArenaSRVAglets(args);
simple.start();
}
}