Apache camel 如何使用ApacheCamel获取网页HTML
我只想使用Camel获取网页的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
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。