원격 호스트에서 scp를 사용하여 일부 파일을 복사해야합니다.Groovy AntBuilder scp catch 예외
파일이 없으면 메시지를 표시해야합니다.
내가 가진 문제는 예외를 FileNotFound
잡을 수 없다는 것입니다. 내가 가진 것은 모두 BuildException이지만 연결이 완료되지 않은 경우에도 발생합니다.
java.io.IOException: scp: theFileToLook: No such file or directory
at org.apache.tools.ant.taskdefs.optional.ssh.ScpFromMessage.startRemoteCpProtocol(ScpFromMessage.java:189)
at org.apache.tools.ant.taskdefs.optional.ssh.ScpFromMessage.execute(ScpFromMessage.java:143)
at org.apache.tools.ant.taskdefs.optional.ssh.Scp.download(Scp.java:276)
at org.apache.tools.ant.taskdefs.optional.ssh.Scp.execute(Scp.java:221)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at MyService$$EODjgsH6.executeScp(MyService.groovy:98)
at MyService$$EODjgsH6.getFileFromRemoteHost(MyService.groovy:63)
at MyController.get(RetrieveController.groovy:36)
at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:195)
at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
나는 그것이 BuildException
표시 println e.class
을 넣어 :
여기에 내가 다음 한
catch(Exception e){
log.error("error", e)
}
을 넣어 내 코드
def ant = new AntBuilder()
ant.scp(
trust:true,
file:"theFileToLook",
todir:"destinationFolder",
keyfile: "myrivateKeyFile",
verbose:true
)
입니다. IOException을 잡으려고 할 때 캐치 내부를 통과하지 못하는 문제가 있습니다.
아이디어가 있으십니까?
:
메시지를 표시하려면, 당신은 뭔가를 구현해야하는 것? –같은 메시지 –
질문을 편집하고 전체 예외를 붙여 넣을 수 있습니까? –