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
>

Reply via email to