You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by TM <mo...@gmail.com> on 2012/07/01 02:32:52 UTC

new user: help with vfs resolver

Hello,

I'm getting the runtime error below with a <vfs> resolver defined in my
settings file.

I'm using the binary-with-dependencies release
<http://ant.apache.org/ivy/download.cgi>. I see lib/commons-vfs-1.0.jar
contains the 'missing' class, in org/apache/commons/vfs/.

Filesystem and url resolvers work as expected; I can retrieve and
publish to $HOME/.ivy2/cache and a Nexus repository on the network.

My goal is to have FTP available.

Any insight is appreciated.

Tom

----
$ java -jar ivy-2.3.0-rc1.jar -settings /path/to/ivysettings.xml

:: loading settings :: file = /path/to/ivysettings.xml
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/commons/vfs/FileSystemManager
	at org.apache.ivy.plugins.resolver.VfsResolver.<init>(VfsResolver.java:34)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
	at java.lang.Class.newInstance0(Class.java:372)
	at java.lang.Class.newInstance(Class.java:325)
	at org.apache.ivy.util.Configurator.addChild(Configurator.java:574)
	at org.apache.ivy.util.Configurator.startCreateChild(Configurator.java:503)
	at
org.apache.ivy.core.settings.XmlSettingsParser.inConfiguratorStarted(XmlSettingsParser.java:579)
	at
org.apache.ivy.core.settings.XmlSettingsParser.startElement(XmlSettingsParser.java:201)
	at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1322)
	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2715)
	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
	at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
	at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
	at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
	at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
	at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
	at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:274)
	at
org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:160)
	at
org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
	at org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:391)
	at org.apache.ivy.Ivy.configure(Ivy.java:412)
	at org.apache.ivy.Main.initSettings(Main.java:399)
	at org.apache.ivy.Main.run(Main.java:208)
	at org.apache.ivy.Main.main(Main.java:179)
Caused by: java.lang.ClassNotFoundException:
org.apache.commons.vfs.FileSystemManager
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

Re: new user: help with vfs resolver

Posted by TM <mo...@gmail.com>.
On 07/05/2012 03:57 AM, Nicolas Lalevée wrote:
> 
> your syntax is wrong. When using -jar, no additional classpath can be added; actually, everything after -jar in considered as arguments of the main java class, not the jvm. Tyr this instead:
> 
> java -cp ivy-2.3.0-rc1.jar:lib/commons-vfs-1.0.jar org.apache.ivy.Main -settings /path/to/ivysettings.xml

This gets past the error.  Thanks!


> 
>> or else with
>>
>> `<classpath file="/path/to/commons-vfs-1.0.jar"/>`
>>
>> Does this provide any additional insight?
> 
> did you try an absolute path ?
> I don't remember well, but I guess relative path in the ivysettings are relative the the ivysettings.xml file.

Yes, both absolute path, and relative path with `${ivy.settings.dir}`.

I think the path is correct (otherwise, XmlSettingsParser throws a
FileNotFoundException).  But then I would expect this to be equivalent
to the above solution using `-cp`.

I'll try and look in the parser.

Thanks again for your help.

Re: new user: help with vfs resolver

Posted by Nicolas Lalevée <ni...@hibnet.org>.
Le 5 juil. 2012 à 01:14, TM a écrit :

> Thank you for the quick reply.  However, using the <classpath> tag or
> -cp option doesn't solve the problem.
> 
> That is, I get the same error with:
> 
> `$ java -jar ivy-2.3.0-rc1.jar -settings /path/to/ivysettings.xml -cp
> lib/commons-vfs-1.0.jar`

your syntax is wrong. When using -jar, no additional classpath can be added; actually, everything after -jar in considered as arguments of the main java class, not the jvm. Tyr this instead:

java -cp ivy-2.3.0-rc1.jar:lib/commons-vfs-1.0.jar org.apache.ivy.Main -settings /path/to/ivysettings.xml

> or else with
> 
> `<classpath file="/path/to/commons-vfs-1.0.jar"/>`
> 
> Does this provide any additional insight?

did you try an absolute path ?
I don't remember well, but I guess relative path in the ivysettings are relative the the ivysettings.xml file.

Nicolas

> ----
> 
> I notice that providing a non-existent file in a <classpath> tag throws
> 
> `io problem while parsing config file: /path/to/no-such.jar`.
> 
> Passing a non-existent file in the -cp option, instead, seems to fail
> silently.
> 
> ----
> 
> Browsing jira, the only vfs-related issue I find is IVY-643.  (Judging
> from the final comment, it can be closed.)
> 
> <https://issues.apache.org/jira/browse/IVY-643>
> 
> 
> On 07/04/2012 01:59 PM, Nicolas Lalevée wrote:
>> You need to add commons-vfs into ivy's classpath, either on the command line, or via the "classpath" in your ivysettings.xml [1].
>> 
>> Nicolas
>> 
>> [1] http://ant.apache.org/ivy/history/latest-milestone/settings/classpath.html
>> 
>> Le 1 juil. 2012 à 02:32, TM a écrit :
>> 
>>> 
>>> Hello,
>>> 
>>> I'm getting the runtime error below with a <vfs> resolver defined in my
>>> settings file.
>>> 
>>> I'm using the binary-with-dependencies release
>>> <http://ant.apache.org/ivy/download.cgi>. I see lib/commons-vfs-1.0.jar
>>> contains the 'missing' class, in org/apache/commons/vfs/.
>>> 
>>> Filesystem and url resolvers work as expected; I can retrieve and
>>> publish to $HOME/.ivy2/cache and a Nexus repository on the network.
>>> 
>>> My goal is to have FTP available.
>>> 
>>> Any insight is appreciated.
>>> 
>>> Tom
>>> 
>>> ----
>>> $ java -jar ivy-2.3.0-rc1.jar -settings /path/to/ivysettings.xml
>>> 
>>> :: loading settings :: file = /path/to/ivysettings.xml
>>> Exception in thread "main" java.lang.NoClassDefFoundError:
>>> org/apache/commons/vfs/FileSystemManager
>>> 	at org.apache.ivy.plugins.resolver.VfsResolver.<init>(VfsResolver.java:34)
>>> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>> 	at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>>> 	at
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>>> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
>>> 	at java.lang.Class.newInstance0(Class.java:372)
>>> 	at java.lang.Class.newInstance(Class.java:325)
>>> 	at org.apache.ivy.util.Configurator.addChild(Configurator.java:574)
>>> 	at org.apache.ivy.util.Configurator.startCreateChild(Configurator.java:503)
>>> 	at
>>> org.apache.ivy.core.settings.XmlSettingsParser.inConfiguratorStarted(XmlSettingsParser.java:579)
>>> 	at
>>> org.apache.ivy.core.settings.XmlSettingsParser.startElement(XmlSettingsParser.java:201)
>>> 	at
>>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
>>> 	at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1322)
>>> 	at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2715)
>>> 	at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
>>> 	at
>>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
>>> 	at
>>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
>>> 	at
>>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
>>> 	at
>>> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
>>> 	at
>>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
>>> 	at
>>> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
>>> 	at
>>> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
>>> 	at javax.xml.parsers.SAXParser.parse(SAXParser.java:274)
>>> 	at
>>> org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:160)
>>> 	at
>>> org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
>>> 	at org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:391)
>>> 	at org.apache.ivy.Ivy.configure(Ivy.java:412)
>>> 	at org.apache.ivy.Main.initSettings(Main.java:399)
>>> 	at org.apache.ivy.Main.run(Main.java:208)
>>> 	at org.apache.ivy.Main.main(Main.java:179)
>>> Caused by: java.lang.ClassNotFoundException:
>>> org.apache.commons.vfs.FileSystemManager
>>> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>>> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>>> 	at java.security.AccessController.doPrivileged(Native Method)
>>> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
>>> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
>>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
>> 


Re: new user: help with vfs resolver

Posted by TM <mo...@gmail.com>.
Thank you for the quick reply.  However, using the <classpath> tag or
-cp option doesn't solve the problem.

That is, I get the same error with:

`$ java -jar ivy-2.3.0-rc1.jar -settings /path/to/ivysettings.xml -cp
lib/commons-vfs-1.0.jar`

or else with

`<classpath file="/path/to/commons-vfs-1.0.jar"/>`

Does this provide any additional insight?

----

I notice that providing a non-existent file in a <classpath> tag throws

`io problem while parsing config file: /path/to/no-such.jar`.

Passing a non-existent file in the -cp option, instead, seems to fail
silently.

----

Browsing jira, the only vfs-related issue I find is IVY-643.  (Judging
from the final comment, it can be closed.)

<https://issues.apache.org/jira/browse/IVY-643>


On 07/04/2012 01:59 PM, Nicolas Lalevée wrote:
> You need to add commons-vfs into ivy's classpath, either on the command line, or via the "classpath" in your ivysettings.xml [1].
> 
> Nicolas
> 
> [1] http://ant.apache.org/ivy/history/latest-milestone/settings/classpath.html
> 
> Le 1 juil. 2012 à 02:32, TM a écrit :
> 
>>
>> Hello,
>>
>> I'm getting the runtime error below with a <vfs> resolver defined in my
>> settings file.
>>
>> I'm using the binary-with-dependencies release
>> <http://ant.apache.org/ivy/download.cgi>. I see lib/commons-vfs-1.0.jar
>> contains the 'missing' class, in org/apache/commons/vfs/.
>>
>> Filesystem and url resolvers work as expected; I can retrieve and
>> publish to $HOME/.ivy2/cache and a Nexus repository on the network.
>>
>> My goal is to have FTP available.
>>
>> Any insight is appreciated.
>>
>> Tom
>>
>> ----
>> $ java -jar ivy-2.3.0-rc1.jar -settings /path/to/ivysettings.xml
>>
>> :: loading settings :: file = /path/to/ivysettings.xml
>> Exception in thread "main" java.lang.NoClassDefFoundError:
>> org/apache/commons/vfs/FileSystemManager
>> 	at org.apache.ivy.plugins.resolver.VfsResolver.<init>(VfsResolver.java:34)
>> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>> 	at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
>> 	at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
>> 	at java.lang.Class.newInstance0(Class.java:372)
>> 	at java.lang.Class.newInstance(Class.java:325)
>> 	at org.apache.ivy.util.Configurator.addChild(Configurator.java:574)
>> 	at org.apache.ivy.util.Configurator.startCreateChild(Configurator.java:503)
>> 	at
>> org.apache.ivy.core.settings.XmlSettingsParser.inConfiguratorStarted(XmlSettingsParser.java:579)
>> 	at
>> org.apache.ivy.core.settings.XmlSettingsParser.startElement(XmlSettingsParser.java:201)
>> 	at
>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
>> 	at
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1322)
>> 	at
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2715)
>> 	at
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
>> 	at
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
>> 	at
>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
>> 	at
>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
>> 	at
>> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
>> 	at
>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
>> 	at
>> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
>> 	at
>> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
>> 	at javax.xml.parsers.SAXParser.parse(SAXParser.java:274)
>> 	at
>> org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:160)
>> 	at
>> org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
>> 	at org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:391)
>> 	at org.apache.ivy.Ivy.configure(Ivy.java:412)
>> 	at org.apache.ivy.Main.initSettings(Main.java:399)
>> 	at org.apache.ivy.Main.run(Main.java:208)
>> 	at org.apache.ivy.Main.main(Main.java:179)
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.commons.vfs.FileSystemManager
>> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>> 	at java.security.AccessController.doPrivileged(Native Method)
>> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
>> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> 

Re: new user: help with vfs resolver

Posted by Nicolas Lalevée <ni...@hibnet.org>.
You need to add commons-vfs into ivy's classpath, either on the command line, or via the "classpath" in your ivysettings.xml [1].

Nicolas

[1] http://ant.apache.org/ivy/history/latest-milestone/settings/classpath.html

Le 1 juil. 2012 à 02:32, TM a écrit :

> 
> Hello,
> 
> I'm getting the runtime error below with a <vfs> resolver defined in my
> settings file.
> 
> I'm using the binary-with-dependencies release
> <http://ant.apache.org/ivy/download.cgi>. I see lib/commons-vfs-1.0.jar
> contains the 'missing' class, in org/apache/commons/vfs/.
> 
> Filesystem and url resolvers work as expected; I can retrieve and
> publish to $HOME/.ivy2/cache and a Nexus repository on the network.
> 
> My goal is to have FTP available.
> 
> Any insight is appreciated.
> 
> Tom
> 
> ----
> $ java -jar ivy-2.3.0-rc1.jar -settings /path/to/ivysettings.xml
> 
> :: loading settings :: file = /path/to/ivysettings.xml
> Exception in thread "main" java.lang.NoClassDefFoundError:
> org/apache/commons/vfs/FileSystemManager
> 	at org.apache.ivy.plugins.resolver.VfsResolver.<init>(VfsResolver.java:34)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> 	at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
> 	at java.lang.Class.newInstance0(Class.java:372)
> 	at java.lang.Class.newInstance(Class.java:325)
> 	at org.apache.ivy.util.Configurator.addChild(Configurator.java:574)
> 	at org.apache.ivy.util.Configurator.startCreateChild(Configurator.java:503)
> 	at
> org.apache.ivy.core.settings.XmlSettingsParser.inConfiguratorStarted(XmlSettingsParser.java:579)
> 	at
> org.apache.ivy.core.settings.XmlSettingsParser.startElement(XmlSettingsParser.java:201)
> 	at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
> 	at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1322)
> 	at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2715)
> 	at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
> 	at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
> 	at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
> 	at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
> 	at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
> 	at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
> 	at
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
> 	at
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
> 	at javax.xml.parsers.SAXParser.parse(SAXParser.java:274)
> 	at
> org.apache.ivy.core.settings.XmlSettingsParser.doParse(XmlSettingsParser.java:160)
> 	at
> org.apache.ivy.core.settings.XmlSettingsParser.parse(XmlSettingsParser.java:150)
> 	at org.apache.ivy.core.settings.IvySettings.load(IvySettings.java:391)
> 	at org.apache.ivy.Ivy.configure(Ivy.java:412)
> 	at org.apache.ivy.Main.initSettings(Main.java:399)
> 	at org.apache.ivy.Main.run(Main.java:208)
> 	at org.apache.ivy.Main.main(Main.java:179)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.commons.vfs.FileSystemManager
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)