Im nouveau à Apache Camel. Im essayant de copier ce fichier dans un dossier: https://www.dnb.no/portalfront/datafiles/miscellaneous/csv/kursliste_ws.xmlCamel chercher des données de http
Je reçois l'erreur:
Exception in thread "main" java.lang.UnsupportedOperationException: Cannot consume from http endpoint
package route;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.log4j.BasicConfigurator;
public class CurrencyRoute {
public static void main(String args[]) throws Exception {
// Log 4j
BasicConfigurator.configure();
// Create camel context
CamelContext context = new DefaultCamelContext();
// New route
context.addRoutes(new RouteBuilder() {
public void configure() {
from("https://www.dnb.no/portalfront/datafiles/miscellaneous/csv/kursliste_ws.xml")
.log("Read file")
.to("file:src/main/resources/data/inbox");
}
});
// start the route and let it do its work
context.start();
Thread.sleep(10000);
// stop the CamelContext
context.stop();
}
}
Je sais que je dois définir un itinéraire pour elle, mais où dois-je définir (en quel fichier ??), et comment devrait-il être défini?
code mis à jour 13.10.2017 13:06
package route;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.log4j.BasicConfigurator;
public class CurrencyRoute {
public static void main(String args[]) throws Exception {
// Log 4j
BasicConfigurator.configure();
// Create camel context
CamelContext context = new DefaultCamelContext();
// Template
ProducerTemplate template = context.createProducerTemplate();
// New route
context.addRoutes(new RouteBuilder() {
public void configure() {
from("direct:start").setHeader(Exchange.HTTP_METHOD, constant("GET"))
.to("https://www.dnb.no/portalfront/datafiles/miscellaneous/csv/kursliste_ws.xml")
.to("file:src/main/resources/data/inbox/?autoCreate=true");
}
});
// SendBody
template.sendBody("direct:start", null);
// start the route and let it do its work
context.start();
Thread.sleep(10000);
// stop the CamelContext
context.stop();
}
}
Je n'ai pas de variables nommées "template". Voulez-vous dire context.sendBody ("direct: start", null); ? – Solo
Vous pouvez créer un ProducerTemplate simple en utilisant ProducerTemplate template = context.createProducerTemplate(); – Shailendra
J'ai mis à jour le code avec le modèle (voir mon premier message) puis j'ai eu cette erreur: Exception dans le fil "principal" org.apache.camel.CamelExecutionException: Une exception est survenue lors de l'exécution de l'échange: Exchange [Message: [Body is null ]] – Solo