Hallo,
ich erhalte folgende Fehlermeldung wenn ich versuche einen Agenten zu einem anderen System zu schicken (dispatchen), jedoch nur wenn ich dies "automatisch" aus der Klasse heraus versuche, wenn ich den Agenten in den Tahiti-Server lade kann ich problemlos per Mausklick dispatchen - daher scheint es mir als wäre es eher ein allgemeines Problem und nicht direkt auf den dispatch-Vorgang bezogen, vielleicht hat ja jemand dieses oder ähnliches schonmal gehabt.
Fehler:
java.security.AccessControlException: access denied (com.ibm.aglets.security.ContextPermission atp://home:4434/@synchronize.Agent create)
Und zwar bei folgendem Code:
Vielen dank schonmal für Tips.
PS: Der Code ist erst in der Anfangsphase, also nicht über mögliche unschöne Sachen wundern
ich erhalte folgende Fehlermeldung wenn ich versuche einen Agenten zu einem anderen System zu schicken (dispatchen), jedoch nur wenn ich dies "automatisch" aus der Klasse heraus versuche, wenn ich den Agenten in den Tahiti-Server lade kann ich problemlos per Mausklick dispatchen - daher scheint es mir als wäre es eher ein allgemeines Problem und nicht direkt auf den dispatch-Vorgang bezogen, vielleicht hat ja jemand dieses oder ähnliches schonmal gehabt.
Fehler:
java.security.AccessControlException: access denied (com.ibm.aglets.security.ContextPermission atp://home:4434/@synchronize.Agent create)
Und zwar bei folgendem Code:
Code:
package synchronize;
import java.net.URL;
import com.ibm.aglet.Aglet;
import com.ibm.aglet.AgletContext;
import com.ibm.aglet.AgletProxy;
import com.ibm.aglet.Message;
public class Agent extends Aglet
{
/**
*
*/
private static final long serialVersionUID = 1223422128643264416L;
AgletContext context = null;
AgletProxy backup = null;
String destination = "atp://mobile:4434";
String proxy_info, aglet_info, agletproxy_info, codebase_info, context_info;
public void onCreation(Object o)
{
System.out.println("\nonCreation-Methode: ");
waiting();
System.out.println("Agent ist gestartet...");
}
public void run()
{
System.out.println("\nRun-Methode:");
waiting();
System.out.print("\ndone.\n");
dispatchNewPartner(destination);
}
public boolean handleMessage(Message message)
{
return true;
}
public void onDisposing()
{
}
private void waiting()
{
try
{
Thread.currentThread().sleep(500);
}
catch(Exception ex)
{
System.out.println(ex);
}
}
private void getInfos()
{
System.out.println("Hole Informationen...");
waiting();
try
{
context_info = context.toString();
codebase_info = getCodeBase().toString();
proxy_info = getProxy().toString();
}
catch(Exception ex)
{
System.out.println("Fehler: "+ex);
}
System.out.println("\n\n\tKontext:\t"+context_info);
System.out.println("\tCode-Base:\t"+codebase_info);
System.out.println("\tProxy-Info:\t"+proxy_info);
}
private void dispatchNewPartner(String destination)
{
System.out.println("dispatch-methode:");
waiting();
try
{
context = getAgletContext();
getInfos();
backup = context.createAglet(null, "synchronize.Agent", getProxy());
aglet_info = backup.getAgletInfo().toString();
agletproxy_info = backup.toString();
System.out.println("\tAglet:\t"+aglet_info);
System.out.println("\tAglet-Proxy:\t"+agletproxy_info);
System.out.println("Ok, ich verschwinde nun zu "+destination);
backup.dispatch(new URL(destination));
System.out.print("\ndone\n.");
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}
Vielen dank schonmal für Tips.
PS: Der Code ist erst in der Anfangsphase, also nicht über mögliche unschöne Sachen wundern