2012-08-14 3 views
-1

간단한 경로를 작성하여 http 요청을 받고 file : 출력에 저장합니다. 일단 저장되면 모든 요청을 읽을 수있는 프로세서가 만들어집니다. 이제Apache camel error : 메서드 처리가 인수에 적용되지 않습니다.

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는 대문자 여야합니다. import 문과 동일합니다. – Sikorski

+0

@Sikorski 일식을 사용합니다! 나는 Caps를 확인하고 계속 업데이트 할 것입니다! 답장을 보내 주셔서 감사합니다. – Spaniard89

+0

이클립스를 사용하여 코드 완성을 사용하면 이러한 문제가 발생하지 않습니다 – Sikorski

답변

1

Processors은 다음과 같이 작성해야 인라인을 ...

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

이것은 수행해야 할 일을하지 못하고 있습니다. 수신 된 모든 교환을 포트 8080에 기록하고 인쇄하려고합니다. 그러나 웹 브라우저에서 로컬 호스트로 비누 요청 메시지를 보내더라도 요청을받지 못했습니다. 내가 여기서하고있는 것이 맞습니까? 원하는 것은 요청을 받아서 두 개의 백엔드 서버로 전달할 수있는 경로를 갖는 것뿐입니다. 기본적으로 프록시가 필요합니다. 다른 옵션이 있습니까? 그리고 morover 때 내 웹 rowser 및 localhost 입력하십시오 : 8080, 부두 오류 404 페이지를 엽니 다. 이유 : 찾을 수 없습니다. 여기에 진지한 도움이 필요합니다. – Spaniard89

+0

부두에 문제가있을 수 있습니다! – Sikorski

+0

@Sikorski하지만 그것은 무엇입니까 ?? 나는이 부분에서 여전히 여기에 맞았다. 부두가 아니라면 다른 옵션이 있습니까? 이 코드를 사용하려면 부두를 별도로 설치해야합니까 ?? 귀하의 지원을 위해 1 백만 달러를 지불하십시오. – Spaniard89