Search the FirstSpirit Knowledge Base
Hallo Community, ich würde gerne den FeatureAgent eines entfernten Projekts ansprechen, leider gehen mir langsam die Ideen aus. Über folgenden Weg komme ich nicht dran...
project.getUserService().getConnection().getBroker().requireSpecialist(FeatureAgent.TYPE)
Wie könnte ich noch dran kommen? Kann ich mir per remote connection irgendwie einen project context erzeugen?
Grüße Artem
Hi,
das Problem ist, dass die Methode Connection.getBroker() einen nicht projektgebundenen SpecialistsBroker zurück liefert, der FeatureAgent aber immer projektgebunden ist.
Folgender Code sollte deshalb funktionieren:
Es wird zuerst ein BrokerAgent geholt, welcher dann einen projektgebundenen SpecialistsBroker zurückliefern kann:
SpecialistsBroker broker = connection.getBroker(); // nicht projektgebunden
BrokerAgent brokerAgent = broker.requireSpecialist(BrokerAgent.TYPE);
broker = brokerAgent.getBrokerByProjectName(project.getName()); // projektgebunden
FeatureAgent agent = broker.requireSpecialist(FeatureAgent.TYPE);
Viele Grüße
Rouven
Hallo Artem,
die Connection, welche du dir mit dem obigen Code holst ist aus dem eigenen Project und somit holst du dir auch den FeatureAgent aus dem lokalen Project.
Du musst zuerst eine Remote Connection holen und dann von dieser aus den FeatureAgent holen.
Dafür wird die Methode Connection.getRemoteConnection(RemoteProjectConfiguration config) mit der vorher passend erstellten RemoteProjectConfiguration aufgerufen.
Viele Grüße
Rouven
Hi, danke für die Antwort, das Problem bei dem obigen Aufruf ist, dass ich auch dort den FeatureAgent nicht bekomme. Habe das nun auch mit .getRemoteConnection(...) ausprobiert und stoße auf dasselbe Problem
java.lang.IllegalStateException: No specialist found for 'de.espirit.firstspirit.feature.FeatureAgent$1@871eac98'
Kann es sein, dass der FeatureAgent nur über den ScriptContext geholt werden kann? Das ist bisher der einzige Weg auf dem ich an den FeatureAgent rangekommen bin.
Grüße Artem
Hi,
das Problem ist, dass die Methode Connection.getBroker() einen nicht projektgebundenen SpecialistsBroker zurück liefert, der FeatureAgent aber immer projektgebunden ist.
Folgender Code sollte deshalb funktionieren:
Es wird zuerst ein BrokerAgent geholt, welcher dann einen projektgebundenen SpecialistsBroker zurückliefern kann:
SpecialistsBroker broker = connection.getBroker(); // nicht projektgebunden
BrokerAgent brokerAgent = broker.requireSpecialist(BrokerAgent.TYPE);
broker = brokerAgent.getBrokerByProjectName(project.getName()); // projektgebunden
FeatureAgent agent = broker.requireSpecialist(FeatureAgent.TYPE);
Viele Grüße
Rouven