2015-01-13 4 views
0

로컬 드라이브에 ftp 파일을 다운로드하려고합니다. 나는 다음과 같은 오류가 발생했습니다faces error "java.lang.String"객체가 mule에 올바른 유형이 아닙니다. esb

Message    : Object "java.lang.String" not of correct type. It must be of type "{interface java.lang.Iterable,interface java.util.Iterator,interface org.mule.routing.MessageSequence,interface java.util.Collection}" (java.lang.IllegalArgumentException) 
Code     : MULE_ERROR--2 

일괄 처리를 사용했습니다. 아래는 나의 흐름이다.

일괄 처리 입력 흐름 http (편도) 다음 레코드 처리 단계에서 내 클래스와 바인딩되는 Java 구성 요소를 사용했습니다. ftp 서버에서 내 파일을 다운로드 할 수있는 함수 하나를 작성했습니다. 내 방법은 인수없이 아래

 <batch:job name="filetosalesBatch1"> 
      <batch:input> 
       <http:inbound-endpoint exchange-pattern="one-way" host="localhost" port="8088" doc:name="HTTP" path="test"/> 
<component doc:name="Java" class="com.ReadFile"> 
       <no-arguments-entry-point-resolver> 
        <include-entry-point method="ftpDownloadFile"/> 
       </no-arguments-entry-point-resolver> 
       </component> 
      </batch:input> 
      <batch:process-records> 
       <batch:step name="Batch_Step"> 
        <logger level="INFO" doc:name="Logger"/> 

       </batch:step> 
      </batch:process-records> 
      <batch:on-complete> 
       <logger level="INFO" doc:name="Logger"/> 
      </batch:on-complete> 
     </batch:job> 

와 반환 무효 나의 방법이다

public void ftpDownloadFile() 
{ 
    // logic for downloading file 
} 

내 노새 응용 프로그램이 오류를 해결하는 방법 좀 도와주세요

Message    : Object "java.lang.String" not of correct type. It must be of type "{interface java.lang.Iterable,interface java.util.Iterator,interface org.mule.routing.MessageSequence,interface java.util.Collection}" (java.lang.IllegalArgumentException) 

오류를 다음있어 EUN

감사합니다.

+0

에 대한 페이로드가 될 수 있습니까? – user3855589

+0

레코드를 일괄 적으로 처리하려면 컬렉션을 사용해야합니다. 오류 : 귀하의 일괄 처리 : 입력 문자열을 대신 반환했다. –

+0

안녕하세요, 답장을 주셔서 감사합니다 나는 또한 컬렉션 스플리터와 시도했지만 아무 효과가 없습니다. 같은 오류 – user3855589

답변

0

사용자 지정 구성 요소를 사용하여 파일을 다운로드하면 안됩니다. FTP 구성 요소를 사용하여 파일 내용을 검색하고 내용을 목록으로 변환하여 일괄 처리 할 수 ​​있습니다.

+0

답장을 보내 주셔서 감사합니다. 오류 (호스트 null)를 제공하기 때문에 ftp를 사용할 수 없습니다. 왜 내가 사용자 지정 구성 요소에 의해 ftp와 연결하는지. 다른 해결책은 제발? – user3855589

1

그것은 당신의 흐름 잘못된 이것은 무엇

public List<String> ftpDownloadFile() { 
    return Arrays.asList("A","B","C","D","E","F","G"); 
} 

하여 ftpDownloadFile 방법을 대체 해보세요? 그것은 마지막 페이로드가 String (http가 보낸 요청)이기 때문입니다. 당신의 방법으로 당신은 Collection을 돌려 주어야하고 그것은 batch:process-records