Comment accéder aux fichiers dans un répertoire par un boulon de la topologie de tempête apacheComment accéder aux fichiers d'un répertoire dans la tempête apache
dans la classe de topologie im objet passant de classe AnnotationTest
Config conf = new Config();
conf.put("gateObject", new AnnotationTest());
En une classe de boulon accédant im que cet objet
AnnotationTest at;
@Override
public void prepare(Map stormConf, TopologyContext context) {
at=(AnnotationTest)stormConf.get("gateObject");
}
Mais le sort de la classe accédant AnnotationTest des ressources à partir du répertoire sable le répertoire de sable également inclus dans la racine du fichier jar (tempête-démarreur-0.9.5-pot avec-dependencies.jar)
le script build Maven ci-dessous
<resource>
<directory>.</directory>
<includes>
<include>sand/**/*.*</include>
</includes>
</resource>
mais lors de l'accès le fichier de ce répertoire de sable dans AnnotationTest classe comme ci-dessous
application = (ConditionalSerialAnalyserController) PersistenceManager
.loadObjectFromUrl(new URL("file:///sand/application.xgapp"));
Tous les codes sources, les dépendances, les répertoires de ressources inclus dans ce seul fichier jar Im soumettre la topologie en exécutant la classe de topologie wh ich également dans le même fichier jar par la commande suivante
storm jar storm-starter-0.9.5-jar-with-dependencies.jar backtype.storm.testing.CopyTopology
l'exception suivante soulevant
6892 [main-EventThread] INFO org.apache.storm.curator.framework.state.ConnectionStateManager - State change: CONNECTED
6930 [main] INFO backtype.storm.daemon.supervisor - Starting supervisor with id 60c35cb1-f020-4f6f-bc79-fcafe3fff844 at host ubuntu
java.io.FileNotFoundException: /sand/application.xgapp (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at java.net.URL.openStream(URL.java:1045)
at gate.util.persistence.PersistenceManager.isXmlApplicationFile(PersistenceManager.java:1013)
at gate.util.persistence.PersistenceManager.loadObjectFromUrl(PersistenceManager.java:857)
at backtype.storm.testing.AnnotationTest.<init>(AnnotationTest.java:38)
at backtype.storm.testing.CopyTopology.submitTopology(CopyTopology.java:30)
at backtype.storm.testing.CopyTopology.main(CopyTopology.java:54)
Alors s'il vous plaît me montrer un moyen d'accéder aux fichiers à partir d'un répertoire (qui est disponible dans le fichier jar) dans la classe de boulon de la topologie de la tempête.