ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Möller <dcmoel...@gmx.de>
Subject [Ivy 1.4.1] Impossible to publish artifacts ...: FileSystemException: Could not create folder "webdav://[host]:[port]/ivy-repo/test"
Date Tue, 25 Sep 2007 07:18:07 GMT
Hi,

we're starting to use Ivy (version 1.4.1). One of the first steps is
creating a company-wide repository. As the backend we're using Tomcat
and webdav as protocol.

To publish an artifact we first resolve the dependencies like this:

   <ivy:resolve/>

After that we invoke the publish target:

   <ivy:publish resolver="${company-resolver}" validate="true">
      <artifacts pattern="artifact/[artifact].[ext]"/>
   </ivy:publish>

Unfortunately every time an exception is thrown stating something like
"impossible to publish artifacts for [ test | test | 1.0.0 ]" - to
analyze the problems we are dealing with a dummy artifact and
organisation called "test".

Running ANT with verbose output flag "-v" faces us with this stack trace:

==========================
d:\Projects\Ivy\build.xml:40: impossible to publish artifacts for [ test
| test | 1.0.0 ]: org.apache.commons.vfs.FileSystemException: Could not
create folder "webdav://[HOST]:[PORT]/ivy-repo/test".
        at fr.jayasoft.ivy.ant.IvyPublish.execute(IvyPublish.java:254)
        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:105)
        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:1329)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
        at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
        at org.apache.tools.ant.Main.runBuild(Main.java:698)
        at org.apache.tools.ant.Main.startAnt(Main.java:199)
        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: Could not create
folder "webdav://[HOST]:[PORT]/ivy-repo/test".
        at
org.apache.commons.vfs.provider.AbstractFileObject.createFolder(AbstractFileObject.java:843)
        at
org.apache.commons.vfs.provider.AbstractFileObject.createFolder(AbstractFileObject.java:826)
        at
org.apache.commons.vfs.provider.AbstractFileObject.createFolder(AbstractFileObject.java:826)
        at
org.apache.commons.vfs.provider.AbstractFileObject.getOutputStream(AbstractFileObject.java:1188)
        at
org.apache.commons.vfs.provider.DefaultFileContent.getOutputStream(DefaultFileContent.java:367)
        at
org.apache.commons.vfs.provider.DefaultFileContent.getOutputStream(DefaultFileContent.java:350)
        at
fr.jayasoft.ivy.repository.vfs.VfsRepository.put(VfsRepository.java:190)
        at
fr.jayasoft.ivy.repository.AbstractRepository.put(AbstractRepository.java:123)
        at
fr.jayasoft.ivy.resolver.RepositoryResolver.put(RepositoryResolver.java:180)
        at
fr.jayasoft.ivy.resolver.RepositoryResolver.publish(RepositoryResolver.java:175)
        at fr.jayasoft.ivy.Ivy.publish(Ivy.java:2436)
        at fr.jayasoft.ivy.Ivy.publish(Ivy.java:2411)
        at fr.jayasoft.ivy.Ivy.publish(Ivy.java:2372)
        at fr.jayasoft.ivy.ant.IvyPublish.execute(IvyPublish.java:230)
        ... 17 more
Caused by: org.apache.commons.httpclient.HttpException
        at
org.apache.webdav.lib.WebdavResource.propfindMethod(WebdavResource.java:3517)
        at
org.apache.webdav.lib.WebdavResource.propfindMethod(WebdavResource.java:3472)
        at
org.apache.webdav.lib.WebdavResource.setNamedProp(WebdavResource.java:976)
        at
org.apache.webdav.lib.WebdavResource.setBasicProperties(WebdavResource.java:921)
        at
org.apache.webdav.lib.WebdavResource.setProperties(WebdavResource.java:1920)
        at
org.apache.webdav.lib.WebdavResource.setProperties(WebdavResource.java:1943)
        at
org.apache.webdav.lib.WebdavResource.refresh(WebdavResource.java:1953)
        at
org.apache.webdav.lib.WebdavResource.mkcolMethod(WebdavResource.java:4139)
        at
org.apache.commons.vfs.provider.webdav.WebdavFileObject.doCreateFolder(WebdavFileObject.java:354)
        at
org.apache.commons.vfs.provider.AbstractFileObject.createFolder(AbstractFileObject.java:832)
        ... 30 more
--- Nested Exception ---
org.apache.commons.vfs.FileSystemException: ... [only already known
stuff is repeated here]
==========================

Looking at the folders Tomcat serves via webdav shows that an empty
folder "test" has been created, but nothing else.

Suprisingly, running ANT again the same way succeeds - but only
sometimes! Almost always (meaning "we still have not observed any
failure after that") it will succeed after the empty folder "test" has
been deleted from the Tomcat webdav root after the first failing attempt.

Don't know if it is a bug with ivy or the webdav library (Jakarta Slide
I guess) or Commons VFS or ... don't know? Maybe we are dealing with it
the wrong way?

So what to do? Any help?

Thanks

Christian

PS: We are using a webdav based repo handled by Tomcat, but what is the
preferred way establishing a company-wide ivy repo? Any recommendations
concerning protocol and backend? Unfortunately, simple remote filesystem
folders are not an option.

Mime
View raw message