ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin" <xavier.ha...@gmail.com>
Subject Re: [Ivy 1.4.1] Impossible to publish artifacts ...: FileSystemException: Could not create folder "webdav://[host]:[port]/ivy-repo/test"
Date Tue, 25 Sep 2007 12:43:57 GMT
I don't use the webdav protocol personnally so I can't comment much on this,
but I know some users have managed to get it working with Ivy 1.4.1. Using
the http resolver won't be of much help, since no publish is supported with
this kind of repository. From my experience, ssh based repositories works
pretty well and have the benefit of being secure. But I don't know if it's
an option for you.

Xavier

On 9/25/07, Christian Möller <dcmoeller@gmx.de> wrote:
>
> Hi again,
>
> to add some further information: We are using the VFS resolver of ivy
> configured in ivyconf.xml like this:
>
> <ivyconf>
>   <conf .../>
>   <resolvers>
>     ...
>     <vfs name="company-repository">
>       <ivy
>
> pattern="webdav://[host]:[port]/ivy-repo/[organisation]/[module]/[revision]/ivy.xml"/>
>       <artifact
>
> pattern="webdav://[host]:[port]/ivy-repo/[organisation]/[module]/[revision]/[artifact].[ext]"/>
>     </vfs>
>   </resolvers>
> </ivyconf>
>
> Bye the way, I've tested version 2.0-alpha2. Seems that it does not
> support webdav protocol anymore, cause I'm not able to get it working:
>
> [ivy:publish] Available VFS schemes...
> [ivy:publish] VFS Supported Scheme: file
> [ivy:publish] VFS Supported Scheme: sftp
>
> Webdav is not mentioned anymore unlike with version 1.4.1.
> Therefore I switched to using http protocol targeting a local Jetty
> server. It fails with this message:
>
> ==========================
> d:\Projects\Ivy\build.xml:40: impossible to publish artifacts for [
> test2 | test | 1.0.0 ]: org.apache.commons.vfs.FileSystemException:
> Could not create folder "http://localhost:8080/".
>         at org.apache.ivy.ant.IvyPublish.doExecute(IvyPublish.java:319)
>         at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:281)
>         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 "http://localhost:8080/".
>         at
> org.apache.commons.vfs.provider.AbstractFileObject.createFolder(
> AbstractFileObject.java:845)
>         at
> org.apache.commons.vfs.provider.AbstractFileObject.createFolder(
> AbstractFileObject.java:828)
>         at
> org.apache.commons.vfs.provider.AbstractFileObject.createFolder(
> AbstractFileObject.java:828)
>         at
> org.apache.commons.vfs.provider.AbstractFileObject.createFolder(
> AbstractFileObject.java:828)
>         at
> org.apache.commons.vfs.provider.AbstractFileObject.createFolder(
> AbstractFileObject.java:828)
>         at
> org.apache.commons.vfs.provider.AbstractFileObject.getOutputStream(
> AbstractFileObject.java:1212)
>         at
> org.apache.commons.vfs.provider.DefaultFileContent.getOutputStream(
> DefaultFileContent.java:373)
>         at
> org.apache.commons.vfs.provider.DefaultFileContent.getOutputStream(
> DefaultFileContent.java:356)
>         at
> org.apache.ivy.plugins.repository.vfs.VfsRepository.put(VfsRepository.java
> :213)
>         at
> org.apache.ivy.plugins.repository.AbstractRepository.put(
> AbstractRepository.java:130)
>         at
> org.apache.ivy.plugins.resolver.RepositoryResolver.put(
> RepositoryResolver.java:174)
>         at
> org.apache.ivy.plugins.resolver.RepositoryResolver.publish(
> RepositoryResolver.java:168)
>         at
> org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:221)
>         at
> org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:188)
>         at
> org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:152)
>         at org.apache.ivy.Ivy.publish(Ivy.java:320)
>         at org.apache.ivy.ant.IvyPublish.doExecute(IvyPublish.java:299)
>         ... 18 more
> Caused by: org.apache.commons.vfs.FileSystemException: This file type
> does not support folder creation.
>         at
> org.apache.commons.vfs.provider.AbstractFileObject.doCreateFolder(
> AbstractFileObject.java:218)
>         at
> org.apache.commons.vfs.provider.AbstractFileObject.createFolder(
> AbstractFileObject.java:834)
>         ... 34 more
> ==========================
>
> Seems that it is trying to create a remote folder named
> "http://localhost:8080/" - which does not make any sense to me.
>
> Greetings
>
> Christian
>
>
> Christian Möller schrieb:
> > 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.
> >
>
>


-- 
Xavier Hanin - Independent Java Consultant
http://xhab.blogspot.com/
http://incubator.apache.org/ivy/
http://www.xoocode.org/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message