我想使用Apache Camel下载网页,遗憾的是我的努力被错误的墙壁所阻止,所有这些似乎都是由以下原因引起的:
java.lang.NoClassDefFoundError: javax/servlet/ServletInputStream
我觉得它很混乱,因为它看起来像标准库中的类。
我在eclipse中创建了项目,在引用的库中我有:
应该完成这项工作的班级代码:
package camelexample;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
public class HttpDownload {
public static void main(String[] args) throws Exception{
System.out.print("download");
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder(){
public void configure(){
from("http://www.ii.uni.wroc.pl/~gst/").to("file:data/webpage.html");
}
});
context.start();
Thread.sleep(10);
context.stop();
}
}
为了运行项目,我只使用eclipse“运行”按钮。我做错了什么?
答案 0 :(得分:1)
您需要使用servlet API添加JAR,例如此JAR
org.apache.geronimo.specs:Geronimo的servlet_2.5_spec:罐:1.1.2:编译
您可以在中央maven回购中找到它: http://repo2.maven.org/maven2/org/apache/geronimo/specs/geronimo-servlet_2.5_spec/1.1.2/
然后将JAR添加到类路径中。
既然你使用了使用Apache Http Client 4.x的camel-http4,你也需要它的依赖
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.1.3:compile
[INFO] | +- org.apache.httpcomponents:httpcore:jar:4.1.4:compile
[INFO] | +- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] | \- commons-codec:commons-codec:jar:1.4:compile