I think the problem is that you poll a single file out of a zip. Have to check this again by time.
Lars 2009/10/1 Jussi Nummelin <[email protected]>: > Hi, > > I build the 2009.02 version and tried the same use case. Now I get > exception every 5 seconds (seems to be the default polling cycle) > > 17:29:58,068 | DEBUG | pool-component.servicemix-vfs-thread-14 | > VFSPollingEndpoint | vicemix.vfs.VFSPollingEndpoint 231 | > Unable to resolve path: zip:file://c:/temp/inbox/poju.zip!/log/PM.xml > java.io.IOException: Failed to create folder: > org.apache.commons.vfs.FileSystemException: Could not create folder > "zip:file:///c:/temp/inbox/poju.zip!/log/PM.xml" because it already > exists and is a file. > at > org.apache.servicemix.vfs.FileObjectResolver.resolveToFileObject(FileObjectResolver.java:62) > at > org.apache.servicemix.vfs.VFSPollingEndpoint.poll(VFSPollingEndpoint.java:229) > at > org.apache.servicemix.common.endpoints.PollingEndpoint$PollSchedulerTask$1.run(PollingEndpoint.java:202) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > > This seems to be because VFS component tries to create a folder > instead of file. I changed this to create a file instead of folder and > recompiled the code. After this change I can get the file contents > passed into bus but deleting the file fails: > org.apache.commons.vfs.FileSystemException: Could not delete > "zip:file:///c:/temp/inbox/poju.zip!/log/PM.xml". > at > org.apache.commons.vfs.provider.AbstractFileObject.deleteSelf(AbstractFileObject.java:709) > at > org.apache.commons.vfs.provider.AbstractFileObject.delete(AbstractFileObject.java:761) > at > org.apache.commons.vfs.provider.AbstractFileObject.delete(AbstractFileObject.java:724) > at > org.apache.servicemix.vfs.VFSPollingEndpoint.process(VFSPollingEndpoint.java:170) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535) > at > org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60) > at > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623) > at > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > Caused by: org.apache.commons.vfs.FileSystemException: This file type > does not support delete. > at > org.apache.commons.vfs.provider.AbstractFileObject.doDelete(AbstractFileObject.java:190) > at > org.apache.commons.vfs.provider.AbstractFileObject.deleteSelf(AbstractFileObject.java:698) > > > The desired/expected behavior is to delete the whole zip file. Any > ideas how to make this possible? > > Another oddity is that the output file (I'm using simple file "bridge" > in my tests currently) name is exactly the same as the input file. > This doesn't make sense to me since the normal file:sender endpoint is > as follows: > <file:sender service="test:receiver" > endpoint="endpoint" > directory="c:\Temp\outbox" > overwrite="true" > tempFilePrefix="pm_log-" > tempFileSuffix=".xml"> > > > > Cheers, > - Jussi - > > > > > > On Tue, Sep 29, 2009 at 3:10 PM, Lars Heinemann <[email protected]> wrote: >> The snapshots are built periodically. I would suggest building those >> from trunk because it's faster ;) >> >> Lars >> >> >> 2009/9/29 Jussi Nummelin <[email protected]>: >>> Hi Lars, >>> >>> Thanks for checking this so rapidly. I will check the fix asap. >>> >>> Are these packages in any maven repo, or should I build them locally from >>> trunk? >>> >>> >>> Cheers, >>> - Jussi - >>> >>> On Tue, Sep 29, 2009 at 2:42 PM, Lars Heinemann <[email protected]> wrote: >>>> Jussin, >>>> >>>> seems you discovered a bug. I fixed it in the trunk >>>> (2009.02-SNAPSHOT). You will probably need Servicemix-utils >>>> 2009.02-SNAPSHOT and Servicemix-common 2009.02-SNAPSHOT as well to get >>>> it running. >>>> >>>> Could you retry with that version? >>>> >>>> Regards >>>> Lars >>>> >>>> >>>> >>>> 2009/9/28 Jussi Nummelin <[email protected]>: >>>>> Hi all, >>>>> >>>>> We're trying to develop something on top of VFS component. The use >>>>> case is following: >>>>> >>>>> An external service uploads a zip file into pre-defined directory. >>>>> That zip file contains multiple files from which only one is of >>>>> interest for us. So this file should be passed to the bus by VFS >>>>> component. >>>>> >>>>> We tried this with following SU xbean: >>>>> <vfs:poller service="test:file_poller" >>>>> endpoint="endpoint" >>>>> targetService="test:file_sender" >>>>> path="zip:file:///tmp/import/somefile.zip!/log/log.xml"> >>>>> >>>>> </vfs:poller> >>>>> >>>>> According to the VFS pages the file URL should be fine. >>>>> http://commons.apache.org/vfs/filesystems.html >>>>> >>>>> >>>>> With this we get following exception: >>>>> >>>>> INFO - ServiceUnitLifeCycle - Starting service unit: vfs-poller >>>>> INFO - DeploymentService - Error in start >>>>> java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?> >>>>> <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message" >>>>> version="1.0"> >>>>> <jbi-task-result> >>>>> <frmwk-task-result> >>>>> <frmwk-task-result-details> >>>>> <task-result-details> >>>>> <task-id>start</task-id> >>>>> <task-result>FAILED</task-result> >>>>> <message-type>ERROR</message-type> >>>>> </task-result-details> >>>>> </frmwk-task-result-details> >>>>> </frmwk-task-result> >>>>> <component-task-result >>>>> xmlns="http://java.sun.com/xml/ns/jbi/management-message"> >>>>> <component-name>servicemix-vfs</component-name> >>>>> <component-task-result-details> >>>>> <task-result-details> >>>>> <task-id>start</task-id> >>>>> <task-result>FAILED</task-result> >>>>> <message-type>ERROR</message-type> >>>>> <task-status-msg> >>>>> <msg-loc-info> >>>>> <loc-token/> >>>>> <loc-message>Unable to start service unit</loc-message> >>>>> </msg-loc-info> >>>>> </task-status-msg> >>>>> <exception-info> >>>>> <nesting-level>1</nesting-level> >>>>> <msg-loc-info> >>>>> <loc-token/> >>>>> <loc-message>Failed to >>>>> initialize file system manager: >>>>> org.apache.commons.vfs.FileSystemException: Could not r >>>>> eplicate "file:///tmp/import/somefile.zip" as it does not >>>>> exist.</loc-message> >>>>> >>>>> <stack-trace><![CDATA[java.io.IOException: Failed to initialize file >>>>> system manager: org.apache.commons.vfs.Fi >>>>> leSystemException: Could not replicate >>>>> "file:///tmp/import/somefile.zip" as it does not exist. >>>>> at >>>>> org.apache.servicemix.vfs.FileObjectResolver.resolveToFileObject(FileObjectResolver.java:66) >>>>> at >>>>> org.apache.servicemix.vfs.VFSPollingEndpoint.start(VFSPollingEndpoint.java:119) >>>>> at >>>>> org.apache.servicemix.common.DefaultServiceUnit.start(DefaultServiceUnit.java:78) >>>>> at >>>>> org.apache.servicemix.common.BaseServiceUnitManager.start(BaseServiceUnitManager.java:155) >>>>> at >>>>> org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.start(ServiceUnitLifeCycle.java:103) >>>>> at >>>>> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(ServiceAssemblyLifeCycle.java:154) >>>>> at >>>>> org.apache.servicemix.jbi.framework.DeploymentService.start(DeploymentService.java:390) >>>>> at >>>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:351) >>>>> at >>>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:255) >>>>> at >>>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:658) >>>>> at >>>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:63) >>>>> at >>>>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:622) >>>>> at java.util.TimerThread.mainLoop(Timer.java:512) >>>>> at java.util.TimerThread.run(Timer.java:462) >>>>> ]]></stack-trace> >>>>> >>>>> >>>>> >>>>> Any help truly appreciated. :) >>>>> >>>>> >>>>> Cheers, >>>>> - Jussi - >>>>> >>>> >>>> >>>> >>>> -- >>>> http://lhein.blogspot.com >>>> >>> >> >> >> >> -- >> http://lhein.blogspot.com >> > -- http://lhein.blogspot.com
