Hi, got a question about how the 'lib' directories are used.

I have a webapp that makes use of a bunch of classes that generate images
of maps (ie. streetmaps) that can be embedded in web pages. To make use of
the mapping API, you need to access a number of jar files and therefore
I've dumped these in the WEB-INF/lib directory. Point to note is that the
bunch of jar files includes xerces.jar and xalan.jar as the mapping product
uses these classes to do its stuff.

Until a couple of days ago I was running the web app on 3.2.29 but I've
just migrated to 4.0. I copied over the whole of the web app and suddenly,
when I get to the point in my app where the mapping API is called to build
a map image I get an error saying

NoClassDefFound: javax/xml/transform/Source

This class is in the xalan.jar file that is in the web apps WEB-INF/lib
directory so I don't get why it isn't being found.

I started sniffing around and thought about putting the xalan.jar into the
/common/lib dir and see if it gets picked up in there. That brought to my
attention the fact that xerces.jar is already present in that dir so I'm
thinking that maybe the mapping product isn't actually using the xerces.jar
in the WEB-INF/lib directory and is using the common one instead? Anyway, I
dumped the xalan.jar in the common/lib dir and restarted and it all works
fine now.

I don't quite understand why though?

Will my web app be using the xerces.jar in the common/lib dir or the one in
the WEB-INF/lib directory?
What difference should it make anyway (assuming they are both of the
appropriate version)?
And why didn't the Source class get found in the xalan.jar file in my
WEB-INF/lib dir?

Thanks for any help.

See ya.

Steve George



--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to