I'm trying to get commons-vfs talking to Archiva and I'm having trouble
getting them talking and I was hoping someone here could help me out.
I'm just trying a simple test to create a directory on the webdav server.
My build.xml looks like this:
<project name="test" xmlns:vfs="antlib:org.apache.commons.vfs.tasks">
<target name="main">
<vfs:mkdir dir="webdav://
user:[email protected]/archiva/repository/snapshots/testOrg/testArtifact"
/>
</target>
</project>
When I try to run this I get the following exception:
org.apache.commons.vfs.
FileSystemException: Could not determine the type of file
"webdav://user:*[email protected]/archiva/repository/snapshots/testOrg".
at
org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:476)
at
org.apache.commons.vfs.provider.AbstractFileObject.createFolder(AbstractFileObject.java:931)
at
org.apache.commons.vfs.provider.AbstractFileObject.createFolder(AbstractFileObject.java:952)
at org.apache.commons.vfs.tasks.MkdirTask.execute(MkdirTask.java:62)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: org.apache.commons.vfs.FileSystemException: Unknown message with
code "Found".
at
org.apache.commons.vfs.provider.webdav.ExceptionConverter.generate(ExceptionConverter.java:88)
at
org.apache.commons.vfs.provider.webdav.ExceptionConverter.generate(ExceptionConverter.java:41)
at
org.apache.commons.vfs.provider.webdav.WebdavFileObject.execute(WebdavFileObject.java:413)
at
org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:488)
at
org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperties(WebdavFileObject.java:463)
at
org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:456)
at
org.apache.commons.vfs.provider.webdav.WebdavFileObject.getProperty(WebdavFileObject.java:448)
at
org.apache.commons.vfs.provider.webdav.WebdavFileObject.isDirectory(WebdavFileObject.java:428)
at
org.apache.commons.vfs.provider.webdav.WebdavFileObject.doGetType(WebdavFileObject.java:113)
at
org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:467)
... 20 more
Total time: 1 second
I dug through the source and the exact HTTP code was a 302 Found. When I
look at the Archiva access logs I see the following:
1.1.1.1 - - [12/Mar/2010:15:19:46 +0000] "HEAD / HTTP/1.1" 404 1268 "-"
"Jakarta Commons-HttpClient/3.1"
1.1.1.1 - - [12/Mar/2010:15:19:46 +0000] "PROPFIND
/archiva/repository/snapshots/
testOrg/testArtifact HTTP/1.1" 404 0 "-" "Jakarta-Commons-VFS"
1.1.1.1 - - [12/Mar/2010:15:19:46 +0000] "PROPFIND
/archiva/repository/snapshots/testOrg HTTP/1.1" 404 0 "-"
"Jakarta-Commons-VFS"
1.1.1.1 - - [12/Mar/2010:15:19:46 +0000] "PROPFIND
/archiva/repository/snapshots HTTP/1.1" 302 0 "-" "Jakarta-Commons-VFS"