2012-04-17 107 views
1

我想使用Apache駱駝下載的網頁,而可悲的是我的努力被錯誤,所有這一切似乎這樁牆停止由以下原因造成:Apache的駱駝找不到servlet類

java.lang.NoClassDefFoundError: javax/servlet/ServletInputStream 

我找到它很混亂,因爲它看起來像標準庫中的一個類。

我在Eclipse中創建的項目,並在引用的庫我:

  • SLF4J-API-1.6.4.jar
  • SLF4J-簡單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「run」按鈕。我究竟做錯了什麼?

+0

加上'的javax.servlet-api' Maven依賴關係來解決它。 ' javax.servlet javax.servlet-api 3.0.1' – Braj 2015-03-04 14:29:10

回答

1

您需要添加一個JAR和servlet API,例如這個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添加到您的類路徑。

而且,由於您使用的駱駝http4,使用你需要它的依賴的Apache HTTP客戶端4.x版以及

[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