2016-05-10 64 views
0

我试图从本地文件夹中将一些文件复制到Apache Camel JCIFS组件的另一个本地文件夹。org.apache.camel.component.file.GenericFileOperationFailedException:无法获取文件无法找到网络名称

这里是MyRouteBuilder类我的Java代码:

package abc; 

import org.apache.camel.builder.RouteBuilder; 

public class MyRouteBuilder extends RouteBuilder { 

    public void configure() { 
     long delay = 60 * 60 * 1000L; 
     from("smb://[email protected]/WORKGROUP/home/user/folder?password=secret&delay=" + delay) 
     .to("file://home/otherUser/folder"); 

    // This doesn't work either: 
    //from("smb://localhost;[email protected]/WORKGROUP/home/user/folder?password=secret&delay=" + delay) 
    //  .to("file://home/otherUser/folder"); 
    } 
} 

执行该航线后,以下情况例外出现:

org.apache.camel.component.file.GenericFileOperationFailedException: Could not get files The network name cannot be found. 
at org.apacheextras.camel.component.jcifs.SmbOperations.listFiles(SmbOperations.java:345) 
at org.apacheextras.camel.component.jcifs.SmbConsumer.pollDirectory(SmbConsumer.java:58) 
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:131) 
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175) 
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: jcifs.smb.SmbException: The network name cannot be found. 
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563) 
at jcifs.smb.SmbTransport.send(SmbTransport.java:663) 
at jcifs.smb.SmbSession.send(SmbSession.java:238) 
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:176) 
at jcifs.smb.SmbFile.doConnect(SmbFile.java:911) 
at jcifs.smb.SmbFile.connect(SmbFile.java:954) 
at jcifs.smb.SmbFile.connect0(SmbFile.java:880) 
at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:669) 
at jcifs.smb.SmbFile.send(SmbFile.java:773) 
at jcifs.smb.SmbFile.doFindFirstNext(SmbFile.java:1986) 
at jcifs.smb.SmbFile.doEnum(SmbFile.java:1738) 
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1715) 
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1648) 
at org.apacheextras.camel.component.jcifs.DefaultSmbClient.listFiles(DefaultSmbClient.java:161) 
at org.apacheextras.camel.component.jcifs.SmbOperations.listFiles(SmbOperations.java:341) 
... 11 more 

注1:我在我的电脑配置Samba服务器,并我正在共享一个包含四个文件的简单文件夹。

注2:我使用本地主机,只是为了测试。我得到这个工作后,我将使用另一台机器IP /域。

谢谢你的帮助!

回答

0

我只是让它工作。我的路线错了。它应该是这样的:

package abc; 

import org.apache.camel.builder.RouteBuilder; 

public class MyRouteBuilder extends RouteBuilder { 

    public void configure() { 
     long delay = 60 * 60 * 1000L; 
     from("smb://[email protected]/folder?password=secret&delay=" + delay) 
     .to("file://home/otherUser/folder"); 
    } 
} 

我发现我的错误在终端上执行以下命令:

smbclient -L localhost 

该命令给我的共享名是我的共享文件夹“文件夹”。