Der folgende Code erstellt eine Topologie, die mit einer Tülle beginnt. In diesem ist TenderEventSpout2
ein Akka Actor.Storm Topology Builder mit Akka Actors
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("EventSpout", new TenderEventSpout2(), 1);
TenderEventSpout2 sieht wie folgt aus:
public class TenderEventSpout2 extends UntypedActor implements IRichSpout{
@Override
public void onReceive(Object message){// throws IOException {}
@Override
public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {}
@Override
public void open(Map map, TopologyContext topologyContext, SpoutOutputCollector spoutOutputCollector) {}
@Override
public void nextTuple() {}
//Override all the interface methods
@Override
public void close() {}
public boolean isDistributed() {
return false;
}
@Override
public void activate() {}
@Override
public void deactivate() {}
@Override
public void ack(Object msgId) {}
@Override
public void fail(Object msgId) {}
@Override
public Map<String, Object> getComponentConfiguration() {
return null;
}
}
Dies kompiliert erfolgreich, aber ich habe diesen Fehler:
You cannot create an instance of [org.quadrisk.toplogy.TenderEventSpout2] explicitly using the constructor (new). You have to use one of the 'actorOf' factory methods to create a new actor. See the documentation.
Aber ein Schauspieler zu schaffen actorOf mit wie mir vorgeschlagen zurückkehren würde ein Objekt ActorRef-Typ. Wie gehe ich hier vor? Danke im Voraus.
Ich bin mir nicht sicher .. Haben Sie eine einfache Besetzung versucht? Wenn eine Umwandlung nicht funktioniert, können Sie anstelle einer Klasse zwei Klassen verwenden und eine "ActorRef" -Mitgliedsvariable in Ihre Auslaufklasse aufnehmen. –
@ MatthiasJ.Sax Einfache Besetzung hat nicht funktioniert. Also folgte dein zweiter Vorschlag. Es klappt ! –