Apache Camel找不到servlet类

时间:2012-04-17 19:41:45

标签: java classpath apache-camel

我想使用Apache Camel下载网页,遗憾的是我的努力被错误的墙壁所阻止,所有这些似乎都是由以下原因引起的:

java.lang.NoClassDefFoundError: javax/servlet/ServletInputStream

我觉得它很混乱,因为它看起来像标准库中的类。

我在eclipse中创建了项目,在引用的库中我有:

  • slf4j-api-1.6.4.jar
  • slf4j-simple-1.6.4.jar
  • 骆驼芯2.9.1.jar
  • 驼http4-2.9.1.jar

应该完成这项工作的班级代码:

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“运行”按钮。我做错了什么?

1 个答案:

答案 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