cann't run example of transformXML in XML dic of jstl1.1 standard-examples

Today while learning JSP's transform mechanism using JSTL, i found that the example of transformXML in XML dic of jstl1.1 standard-examples could not be run, the error message followed as:

javax.servlet.ServletException: org/apache/xml/serializer/SerializerTrace

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)

org.apache.jsp.xml.TransformWithInclusion_jsp._jspService(org.apache.jsp.xml.TransformWithInclusion_jsp:81)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.NoClassDefFoundError: org/apache/xml/serializer/SerializerTrace

java.lang.ClassLoader.defineClass1(Native Method)

java.lang.ClassLoader.defineClass(Unknown Source)

java.security.SecureClassLoader.defineClass(Unknown Source)

org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1650)

org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:856)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1305)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1187)

java.lang.ClassLoader.loadClassInternal(Unknown Source)

org.apache.xalan.processor.ProcessorStylesheetElement.getStylesheetRoot(ProcessorStylesheetElement.java:121)

org.apache.xalan.processor.ProcessorStylesheetElement.startElement(ProcessorStylesheetElement.java:72)

org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:623)

com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)

com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)

com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)

com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)

com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)

com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)

com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)

com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)

org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:920)

org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:774)

org.apache.taglibs.standard.tag.common.xml.TransformSupport.doStartTag(TransformSupport.java:145)

org.apache.jsp.xml.TransformWithInclusion_jsp._jspx_meth_x_transform_0(org.apache.jsp.xml.TransformWithInclusion_jsp:180)

org.apache.jsp.xml.TransformWithInclusion_jsp._jspService(org.apache.jsp.xml.TransformWithInclusion_jsp:73)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

it seems that the class "org.apache.xml.serializer.SerializerTrace" is missing, is it? and i have add the path of "xalan.jar" in xalan-j_2_7_0 dic to the "CLASSPATH" enviroment parameter, but the class of "org.apache.xml.serializer.SerializerTrace" could not be found at that xalan.jar file.

could anyone help me overcome this error, thanks.

[4327 byte] By [fengzia] at [2007-10-2 11:11:46]
# 1
anyone help me?
fengzia at 2007-7-13 3:55:05 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 2
up
fengzia at 2007-7-13 3:55:05 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 3

I met the same probem as you. Finally, I sove it. You can do as follows:

Put serializer.jar, xercesImpl.jar and xml-apis.jar into classpath also or put them into ANT_HOME/lib.

It is not enough to put xalan.jar only as some guid said:-), you need put all the jar files existed in <xalan-j_2_7_0> after you unzip the xalan-j_2_7_0-bin.zip file.

Good luck.

--Xu He.

edward_hea at 2007-7-13 3:55:05 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 4

We are using weblogic's ant. (ie ANT_HOME=%WEBLOGIC_HOME%\server) in which case, just adding xalan.jar and serializer.jar in CLASSPATH before we call ant.bat is good enough. The weblogic's ant scripts actually "append" weblogic.jar to the CLASSPATH and so any xalan implementation from weblogic.jar is not used.

kpsunilJDAa at 2007-7-13 3:55:05 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 5
hey that was of gr8 help thanks a lot :)
sam_java_devlopera at 2007-7-13 3:55:05 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...