A workaround is this: copy the three jar files to ${MERLIN_HOME}/ext This still does not explain the odd behavior.
All this is the same for version 3.3.0.
If your runnig on windows this works fine. The problem is related to the scripts for unix which inclde overriding declarations of the extension dir - this has been fixed in CVS and will be included int the 3.3 release - in the meantime you can simply drop the -Djava.ext.dirs argument form the command line setup in the script.
Stephen.
-broc
> -----Original Message-----
> From: Seib, Broc [mailto:[EMAIL PROTECTED] > Sent: Wednesday, April 14, 2004 11:48 AM
> To: Avalon framework users
> Cc: Seib, Broc
> Subject: Merlin 3.2.5 does not see jars in java's > jre/lib/ext directory
> > > I am running merlin 3.2.5 with java 1.3.1. At the end of the merlin
> INSTALL.TXT file, there is a note for java 1.3.1 users, > saying you need
> to install the xml parsers that 1.3.1 lacks. (BTW, I think there is a
> deadly typo in that section: "java.ext.dir" seems incorrect;
> "java.ext.dirs" instead.) I have correctly installed the > three xml jar
> files to my jre/lib/ext directory. I also wrote a short java > program to
> prove that java is happy about the jars being "findable" in that
> location.
> > However, when I try to execute the merlin "hello" tutorial > (as below) I
> get an error with merlin being unable to find a class, which > I know is
> correctly installed in the jre/lib/ext directory.
> > I can't figure out why merlin would see /ext differently > than java. Any
> ideas?
> > -broc
> > > <merlin_fails_to_find_jars>
> /home/pulsar/bseib/merlin/tutorial/hello$ merlin > target/classes -execute
> Starting Default Unix script
> Starting Merlin 3.2.4.
> ====================
> Platform: FreeBSD
> Java Home: /usr/local/jdk
> Merlin Home: /opt/merlin
> Security policy: /opt/merlin/bin/security.policy
> JVM Options:
> Bootstrap JAR: /opt/merlin/bin/lib/merlin-cli-3.2.4.jar
> Merlin Arguments: target/classes -execute
> > ---- exception report
> ----------------------------------------------------------
> Exception: org.apache.avalon.merlin.KernelException
> Message: Could not load the kernel directive:
> file:/opt/merlin/config/kernel.xml
> ---- cause
> ---------------------------------------------------------------------
> Exception: javax.xml.parsers.FactoryConfigurationError
> Message: Provider > org.apache.xerces.jaxp.SAXParserFactoryImpl not found
> ---- stack trace
> ---------------------------------------------------------------
> javax.xml.parsers.FactoryConfigurationError: Provider
> org.apache.xerces.jaxp.SAXParserFactoryImpl not found
> javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFacto
> ry.java:141
> )
> org.apache.avalon.framework.configuration.DefaultConfiguratio
> nBuilder.<i
> nit>(DefaultConfigurationBuilder.java:135)
> org.apache.avalon.framework.configuration.DefaultConfiguratio
> nBuilder.<i
> nit>(DefaultConfigurationBuilder.java:118)
> org.apache.avalon.merlin.impl.DefaultFactory.getKernelConfigu
> ration(Defa
> ultFactory.java:834)
> org.apache.avalon.merlin.impl.DefaultFactory.create(DefaultFa
> ctory.java:
> 241)
> org.apache.avalon.merlin.cli.Main.<init>(Main.java:329)
> org.apache.avalon.merlin.cli.Main.main(Main.java:281)
> -------------------------------------------------------------
> -----------
> --------
> </merlin_fails_to_find_jars>
> > > <excerpt_from_INSTALL>
> Special Note for JRE 1.3 and earlier.
> -------------------------------------
> > Some applications assume that XML parsing classes are > available withing
> the JRE. This is not the case with JDK 1.3 and earlier. To resolve
> this
> you can copy the following files to the JAVAHOME/lib/ext directory or
> declare an alternative directory as a JVM argument under the
> MERLIN_JVM_OPTS environment variable, i.e. > -Djava.ext.dir=someDirectory
> > system/xml-apis/jars/xml-apis-2.0.2.jar
> system/xml-apis/jars/xmlParserAPIs-2.0.2.jar
> system/xerces/jars/xerces-2.4.0.jar
> > </excerpt_from_INSTALL>
> > <test_code_to_prove_install_is_correct>
> // Foo.java
> // prove that this import statement does not fail
> import org.apache.xerces.jaxp.SAXParserFactoryImpl;
> > class Foo {
> public static void main(String[] args) {
> > // i just want to see what java thinks where > its ext dir
> is
> String key = "java.ext.dirs";
> String extDirs =
> System.getProperties().getProperty(key);
> System.out.println(key+"="+extDirs);
> > // see if we can actually use something from
> SAXParserFactoryImpl
> // to prove it can be loaded from the ext dir
> SAXParserFactoryImpl testObj = new
> SAXParserFactoryImpl();
> System.out.println("success creating > object="+testObj);
> }
> }
> </test_code_to_prove_install_is_correct>
> > <running_the_test_code>
> $ javac Foo.java
> $ java Foo
> java.ext.dirs=/usr/local/jdk1.3.1/jre/lib/ext
> success creating
> [EMAIL PROTECTED]
> > Then I moved the three jar files out of my /ext directory > and reran and
> got the errors I was expecting.
> > $ java Foo
> java.ext.dirs=/usr/local/jdk1.3.1/jre/lib/ext
> Exception in thread "main" java.lang.NoClassDefFoundError:
> org/apache/xerces/jaxp/SAXParserFactoryImpl
> at Foo.main(Foo.java:11)
> > </running_the_test_code>
> > ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> >
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--
|------------------------------------------------| | Magic by Merlin | | Production by Avalon | | | | http://avalon.apache.org/merlin | | http://dpml.net/merlin/distributions/latest | |------------------------------------------------|
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
