1

Apache Camelを使用してWebページをダウンロードしたかったのですが、残念ながら、私の努力はひどいエラーの壁によって止められました。これらはすべて、次の原因によるものと思われます。

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の「実行」ボタンを使用します。私は何が間違っているのですか?

4

1 に答える 1

1

サーブレットAPIを使用してJARを追加する必要があります(例:このJAR)

org.apache.geronimo.specs:geronimo-servlet_2.5_spec:jar:1.1.2:compile

中央の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
于 2012-04-18T16:07:23.330 に答える