WSO2-发生故障时VFS未将文件移动到正确路径

WSO2-发生故障时VFS未将文件移动到正确路径,wso2,wso2esb,vfs,Wso2,Wso2esb,Vfs,我在WSO2 VFS系统上遇到了一个小问题。我有一个简单的入站端点,每5秒扫描一个文件夹以读取CVS文件。 我想处理文件名不是预期文件名的情况。 我用一个错误序列处理了这个问题,但仍然出现了一个技术错误: ERROR - FilePollingConsumer Error moving file : file:///C:/Servers/Flux/Input/UESMGEN_2AAB_20160729.csv to file:///C:/Servers/Flux/Output/Process/

我在WSO2 VFS系统上遇到了一个小问题。我有一个简单的入站端点,每5秒扫描一个文件夹以读取CVS文件。 我想处理文件名不是预期文件名的情况。 我用一个错误序列处理了这个问题,但仍然出现了一个技术错误:

ERROR - FilePollingConsumer Error moving file : file:///C:/Servers/Flux/Input/UESMGEN_2AAB_20160729.csv to file:///C:/Servers/Flux/Output/Process/ org.apache.commons.vfs2.FileSystemException: Could not rename "
我使用了transport.vfs.MoveAfterFailure,但文件被移动到transport.vfs.MoveAfterProcess路径。我想这是由于技术错误造成的

但当我用正确的文件测试序列时,一切都很顺利


有什么想法吗?感谢您的帮助

transport.vfs.MoveAfterFailure在axis2的传输层/流中发生错误时(例如,在构建缺少某些结束标记的应用程序/xml消息时)在中介之前使用

一旦消息进入中介,即使执行了错误序列,也将使用transport.vfs.MoveAfterProcess


(这是ESB 4.8.1的工作方式,不能说ESB 5仍然如此)

感谢Jean-Michel的精确性。很抱歉重新开始这个问题,但我觉得我找不到像您提供的答案那样清楚的机会

如果出现问题,中介是否可以将文件从
transport.vfs.MoveAfterProcess
(由传输层移动)移动到其他文件夹?下面是一个错误序列的相关部分,我尝试在其中移动文件

  • sftp://foo:***@本地主机:2222/进程
  • 到<代码>sftp://foo:***@本地主机:2222/错误

{fn:concat($ctx:rsaFolderProcess,$trp:FILE_NAME)}
{fn:concat($ctx:rsaFolderErrors,$trp:FILE_NAME)}
(我正在使用文件连接器2.0.20,并且已定义了
rsaFolderProcess
rsaFolderErrors

这会导致以下错误:

[2020-03-26 14:51:21743][]错误-FileMove无法移动文件/文件夹。
org.apache.commons.vfs2.FileSystemException:无法确定文件是否为“sftp://foo:***@localhost:2222/Process“是可写的。
位于org.apache.commons.vfs2.provider.AbstractFileObject.isWriteable(AbstractFileObject.java:1529)
位于org.apache.commons.vfs2.provider.AbstractFileObject.moveTo(AbstractFileObject.java:1573)
位于org.wso2.carbon.connector.FileMove.FileMove(FileMove.java:143)
位于org.wso2.carbon.connector.FileMove.moveFile(FileMove.java:103)
位于org.wso2.carbon.connector.FileMove.connect(FileMove.java:60)
.....
我查了一下权利。用户
foo
可以写入
Success
/Errors
;唯一的问题是中介序列不知道这一点,并且无法将文件从前者移动到后者。这就好像传输层中声明的权限不是由中介继承的一样。如何解决这一问题并实现这一目标

环境

  • wso2ei 6.5.0

感谢您的精确性,我理解其中的“细微差别”。