99.7. 사용 예
99.7.1. 단어 수(Linux) 실행 링크 복사링크가 클립보드에 복사되었습니다!
아래 예제에서는 wc (단어 수, Linux)를 실행하여 파일 /usr/share/dict/ words s 의 단어를 계산합니다. 단어 수(output)는 wc 의 표준 출력 스트림에 작성됩니다.
from("direct:exec")
.to("exec:wc?args=--words /usr/share/dict/words")
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
// By default, the body is ExecResult instance
assertIsInstanceOf(ExecResult.class, exchange.getIn().getBody());
// Use the Camel Exec String type converter to convert the ExecResult to String
// In this case, the stdout is considered as output
String wordCountOutput = exchange.getIn().getBody(String.class);
// do something with the word count
}
});
99.7.2. Java 실행 링크 복사링크가 클립보드에 복사되었습니다!
아래 예제에서는 java 가 시스템 경로에 있는 경우 -server 및 -version 두 개의 인수를 사용하여 java 를 실행합니다.
from("direct:exec")
.to("exec:java?args=-server -version")
아래 예제에서는 c:\temp 에서 -server,-version 및 sytem 속성 user.name 의 세 가지 인수를 사용하여 java 를 실행합니다.
from("direct:exec")
.to("exec:c:/program files/jdk/bin/java?args=-server -version -Duser.name=Camel&workingDir=c:/temp")
99.7.3. Cryostat 스크립트 실행 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 ant.rate가 시스템 경로에 있고 을 사용하여 Apache Cryostat(Windows만 실행)를 실행합니다.
CamelExecBuildFile.xml 에 있는 경우 빌드 파일 CamelExecBuildFile. xml
from("direct:exec")
.to("exec:ant.bat?args=-f CamelExecBuildFile.xml")
다음 예에서 ant. extension 명령은 출력을 -l 을 사용하여 CamelExecOutFile.txt 로 리디렉션합니다. CamelExecOutFile.txt 파일은 outFile=CamelExecOutFile.txt 를 사용하여 외부 파일로 사용됩니다. 이 예제에서는 ant.#159가 시스템 경로에 있고 CamelExecBuildFile.xml 이 현재 디렉터리에 있다고 가정합니다.
from("direct:exec")
.to("exec:ant.bat?args=-f CamelExecBuildFile.xml -l CamelExecOutFile.txt&outFile=CamelExecOutFile.txt")
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
InputStream outFile = exchange.getIn().getBody(InputStream.class);
assertIsInstanceOf(InputStream.class, outFile);
// do something with the out file here
}
});
99.7.4. echo 실행(Windows) 링크 복사링크가 클립보드에 복사되었습니다!
echo 및 dir 과 같은 명령은 운영 체제의 명령 인터프리터를 통해서만 실행할 수 있습니다. 이 예제에서는 이러한 명령을 실행하는 방법을 보여줍니다 - echo - in Windows.
from("direct:exec").to("exec:cmd?args=/C echo echoString")