2016-10-06 4 views
0

제목에서 말하지만 Camel의 파일 언어를 사용하여 올바른 경로를 지정하는 파일 확장자를 얻으려고합니다.

choice(). 
    when().simple("${file:ext} in 'xml'"). 
     unmarshal(coreIt("jaxb[Core]")). 
     beanRef(connectorName()+coreIt("[Core]ImportConnector"), "processXml"). 
    when().simple("${file:ext} in 'zip,7z'"). 
     beanRef(connectorName()+coreIt("[Core]ImportConnector"), "extractZip"). 
endChoice(); 

문제는 클라이언트가 파일 이름에 점을 찍은 날짜가있는 xml 파일을 제공한다는 것입니다. 어떤 이유로 낙타는 첫 번째 점 다음의 모든 것을 확장으로 취급합니다. 내가 할 경우 :

when().simple("${file:ext} in '09.16.xml'"). 

작동 ...

어떤 솔루션이나 해결 방법은 XML 파일을 가져올 수있는 별도의 폴더를 만들어 따로 있습니까? 시간 내 줘서 고마워.

+0

당신이 낙타의 어떤 버전을 사용합니까 :

${file:name} ends with 'zip' || ${file:name} ends with '7z' 

가에서 자세한 내용을 참조하십시오? –

+0

@ClausIbsen 2.15.2 – Sikor

+0

새로운 Camel 버전을 사용해 보셨습니까? 그리고 당신은 창문이나 리눅스를 사용하고 있습니까? –

답변

1

일부 파일에는 확장자가 '.tar.gz'등으로 표시 될 수 있습니다. 따라서 파일 이름에 점을 사용하지 않는 것이 좋습니다. 이 문제를 해결하려면이를 확인하기 위해 다른 간단한 표현식을 사용해야합니다. 당신은

${file:name} ends with 'xml' 

과 끝을 사용할 수 있습니다 그리고 당신은 사용하거나 : http://camel.apache.org/simple

+0

최신 버전으로 업그레이드해야했지만 작동합니다. 고맙습니다. – Sikor

관련 문제