2012-08-14 50 views
-1

我寫了一個簡單的路由,它將得到任何http請求並將其保存在file:output中。 一旦保存了一個處理器,它將讀取所有的請求。Apache駱駝錯誤:方法進程不適用於參數

這裏是我的代碼:

import org.apache.camel.CamelContext; 
import org.apache.camel.Exchange; 
import org.apache.camel.processor.*; 
import org.apache.camel.builder.RouteBuilder; 
import org.apache.camel.impl.DefaultCamelContext; 


public class LoadBalancer { 
    public static void main(String args[]) throws Exception { 
      CamelContext context = new DefaultCamelContext(); 

     context.addRoutes(new RouteBuilder() { 

      public void configure() { 
       from("jetty://http://localhost:8080") 
       .to("file:output"); 
       from("file://output").process(new processor() 
       { 
        public void process(Exchange e) 
        { 
         System.out.println("Recieved exchange:" + e.getIn()); 
        } 
       } 
       ); 
       //.loadBalance().roundRobin().to("http://172.28.39.138:8080","http://172.168.20.118:8080"); 
      } 
     }); 

     context.start(); 

     Thread.sleep(100000); 
     context.stop(); 
    } 
} 

現在,當我編譯它,我得到以下錯誤:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method process(Processor) in the type ProcessorDefinition<RouteDefinition> is not applicable for the arguments (new processor(){}) 
    processor cannot be resolved to a type 

On the line `from("file://output").process(new processor()` 



I couldn't figure out what kind of error it it. 
    Am I doing anything wrong in the code? 
    Any help would be very much appreciated. 

    Cheers!! 
+0

請告訴我你用什麼IDE編碼,並且關於你的錯誤檢查你的處理器在新處理器中的拼寫,P應該是大寫字母。您的進口聲明也一樣。 – Sikorski 2012-08-14 15:16:58

+0

@Sikorski我使用eclipse!我會檢查上限,並會保持更新!謝謝你的答覆隊友! – Spaniard89 2012-08-14 19:00:47

+0

如果你使用的是eclipse,然後利用代碼完成,你不會得到這樣的問題 – Sikorski 2012-08-15 08:04:09

回答

1

內聯Processors應該這樣寫......

from("file://output").process(new Processor() { 
    public void process(Exchange exchange) throws Exception { 
     System.out.println("Recieved exchange:" + e.getIn()); 
    } 
}); 
+0

這可能沒有做它應該做的事情。 我想在端口8080上記錄所有收到的交換並打印它。 但是,雖然我發送肥皂請求消息從Web瀏覽器到我的本地主機,我沒有收到任何請求。 我在這裏做的是正確的嗎?我想要的只是一條可以接收請求並將它們轉發到兩個後端服務器的路由。 基本上我需要一個代理。我有其他選擇嗎?當我打開我的網頁rowser並輸入localhost:8080, 它會打開一個包含jetty錯誤404原因的頁面:未找到。請在這裏需要一些認真的幫助。 – Spaniard89 2012-08-15 09:06:46

+0

也許你的碼頭存在一些問題! – Sikorski 2012-08-15 10:46:08

+0

@Sikorski但它是什麼?這部分我仍然在這裏受到打擊。如果不是碼頭,我有什麼其他選擇?我是否需要單獨安裝jetty,以使用此代碼?謝謝你的支持。 – Spaniard89 2012-08-15 10:48:19