Apache camel 如何使用ApacheCamel获取网页HTML

Apache camel 如何使用ApacheCamel获取网页HTML,apache-camel,Apache Camel,我只想使用Camel获取网页的HTML并将其保存为本地文本文件。我试过下面的方法,但不起作用-它从来没有命中流程代码,也没有显示任何文件。这看起来应该相当简单。我做错了什么 CamelContext context = new DefaultCamelContext(); context.addRoutes(new RouteBuilder() { public void configure() { from("jetty:https://2001:499

我只想使用Camel获取网页的HTML并将其保存为本地文本文件。我试过下面的方法,但不起作用-它从来没有命中流程代码,也没有显示任何文件。这看起来应该相当简单。我做错了什么

CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
    public void configure()
    {
       from("jetty:https://2001:4998:124:1507::f001") // www.yahoo.com IP address
       .process(new Processor() {
           public void process(Exchange exchange) throws Exception
            {
               System.out.println( "Name="+ exchange.getIn().getBody() );              
            }
                
         })
       .to("file:C:\\temp\\folder2?fileName=web.txt");
    }
  });
       
      context.start();
      Thread.sleep(5000);
      context.stop();
      System.out.println( "Done" );
来自(“码头:https://....“”
配置Jetty consumer,它充当web服务器

您应该使用制作人,例如
来(“jetty:https://...”
,以发出客户端请求。通过使用
camel-http
组件而不是Jetty,通过添加如下依赖项,事情可以稍微简化:


org.apache.camel
骆驼http
你的骆驼船来了
那么路线可能是这样的。它使用
timer
组件启动HTTP调用:

context.addRoutes(新RouteBuilder(){
@凌驾
public void configure()引发异常{
从(“计时器:getHtml?repeatCount=1”)
.至(”https://www.yahoo.com")
.to(“文件:C:\\temp\\folder2?文件名=web.txt”);
}
});

如果您使用的是Camel 3.x,那么您还需要为
Camel timer
添加一个依赖项,以使示例正常工作。

好的,它可以正常工作,谢谢。我只是想对这件事保持清醒。我知道在构建路由时,首先需要在first()调用中使用使用者组件。既然医生说定时器只支持一个消费者,我想这是令人满意的。由于to()方法需要生产者,“https”是否被视为http组件的一部分?是的,camel http组件支持2个URI方案。http&https。