generate2000 发表于 2010-11-11 10:28:14

总是出现swarm.SignatureNotFoundException错误

本帖最后由 generate2000 于 2010-11-11 10:46 编辑

本人swarm菜鸟,有个问题请教下下.swarm2.2,jdk1.6update21
以下是actiongroupdemo程序,在执行时出现以下错误.请各位高手帮忙解决一下,不胜感激.
swarm.SignatureNotFoundException
      at swarm.Selector.<init>(Selector.java:76)
      at ActionGroupDemo.<init>(ActionGroupDemo.java:37)
      at ActionGroupDemo.main(ActionGroupDemo.java:67)


import swarm.objectbase.SwarmImpl;
import swarm.objectbase.Swarm;
import swarm.activity.ScheduleImpl;
import swarm.activity.Activity;
import swarm.activity.ActionGroupImpl;
import swarm.collections.ListImpl;
import swarm.defobj.Zone;
import swarm.Globals;
import swarm.Selector;
import swarm.activity.ActionGroup;
class Agent {
      char id;

      Agent(char id) {
                this.id = id;
      }

      public void agentStep() {
                System.out.println(id + ":" + Globals.env.getCurrentTime());
      }
}

public class ActionGroupDemo extends SwarmImpl {
      ScheduleImpl schedule;
      ActionGroupImpl actionGroup;
      ListImpl list;
      char Id = 'a';

      ActionGroupDemo(Zone aZone) {
                super(aZone);
                list = new ListImpl(aZone);
                swarmSetp();
                actionGroup = new ActionGroupImpl(aZone);
                schedule = new ScheduleImpl(aZone);
                try {
                        Selector agentSel = new Selector(Agent.class, "agentStep", false);
                        Selector swarmSel = new Selector(ActionGroupDemo.class,"swarmSetp", false);//问题就出现在这一行
                        
                        actionGroup.createActionForEach$message(list, agentSel);
                        actionGroup.createActionTo$message(this, swarmSel);
                        schedule.at$createAction(0, actionGroup);
                        schedule.at$createAction(1, actionGroup);
                        schedule.at$createAction(2, actionGroup);

                } catch (Exception e) {
                        e.printStackTrace(System.err);
                        //System.out.println(e);
                        System.exit(1);
                }


      }

      private void swarmSetp() {
                list.addLast(new Agent(Id));
                Id++;
      }

      public Activity activateIn(Swarm context) {
                super.activateIn(context);
                schedule.activateIn(this);
                return getActivity();
      }

      public static void main(String[] args) {
                Globals.env.initSwarm("ActionGroupdemo", "1.1", "s@s", args);
                Swarm swarms = new ActionGroupDemo(Globals.env.globalZone);
                swarms.buildObjects();
                swarms.buildActions();
                swarms.activateIn(null).run();
      }

}

hbj307 发表于 2010-11-22 22:09:23

你的函数swarmStep 不能为private 要是public才行。
页: [1]
查看完整版本: 总是出现swarm.SignatureNotFoundException错误