Oleg Tkachenko wrote:
I am running fop in a servlet with jrun 3.1 as the servlet container.

the only way I can get it to work is if I put xalan-2.0.0.jar and
xerces-1.2.3.jar into my jdk/jre/lib/ext folder. I have all the other fop
jars in my WEB-INF/lib folder.


as long as I have xalan-2.0.0.jar and xerces-1.2.3.jar in the
jdk/jre/lib/ext folder my servlet works, but if I move these to to the
WEB-INF/lib it doesn't and I get this error:

500 Internal Server Error
/servlet/FotoPDF:

null
java.lang.NoSuchMethodError
    at org.apache.fop.svg.SVGElement.init(SVGElement.java:199)


That sounds very bizarre to me, but I guess it has something to do with batik.jar. Chances are you have another (old?) batik (or another svg lib?) somewhere in the classpath.


The last line is the line in question: DOMImplementation impl = SVGDOMImplementation.getDOMImplementation(); String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI; doc = impl.createDocument(svgNS, "svg", null);

There seems to be a comflict between DOM implementations here.
Order in the classpath matters, and the jdk/jre/lib/ext directory
is searched before the WEB-INF/lib (it's usually part of the
bootclasspath).

JRun ought to have some documentation detailing how the classpath
is built and how other directories are searched. This should clear
any misunderstandings. If in doubt, the JRun people should be asked
for clarification.

J.Pietschmann



Reply via email to