Hi Valeria,
Which level of Xalan are you using? If you are using 2.7.x then you would also need to copy over serializer.jar into the endorsed directory.
Thanks.
Erin Harris
"Valeria P."
<[EMAIL PROTECTED]>
22/10/2006 11:12 AM
|
|
Hallo,
I have this problem that I could not solve although I tried all the
suggestions I could find in manuals and in forums/lists archives.
I developed a simple XML based document repository using JSTL xml tags 1.0
under Tomcat 4.0.
Now I am trying to do the same with Tomcat 5 using JSTL 1.1 but I keep
receiving an error message about the instantiation of the transformer:
javax.xml.transform.TransformerFactoryConfigurationError: Provider
org.apache.xalan.transformer.TransformerImpl could not be instantiated:
java.lang.InstantiationException:
org.apache.xalan.transformer.TransformerImpl
I did the following to overcome the problem:
1) download the latest versions of xalan.jar, xercesImpl.jar and
xml-apis.jar and place them under the WEB-inf directory of my application
2) (just to be sure to override any existing old package including the same
classes) place the same files under TOMCAT_HOME/common/endorsed and
JAVA_HOME/lib/endorsed
3) add:
-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
-Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
both to JAVA_OPTS and CATALINA_OPTS
I also tried the CheckEnvironment method and it appears I am running the
correct version of Xalan.
Other details about my test environment:
- Windows XP
- JRE 1.5.0
- Tomcat 5.5.12
- A CMS compliant with Tomcat 5 and coming with JSTL 1.1 libraries
(InfoGlue: www.infoglue.org)
This is my very simple transformer page (very very basic as you can see):
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<c:import var="xmlText" url="" />
<c:import var="xslText" url="" />
<c:catch var="ex">
<x:transform xslt="${xslText}" doc="${xmlText}"></x:transform>
</c:catch>
<c:if test="${not empty ex}">
<c:out value="${ex}" />
</c:if>
The request-scoped variables contain what they should (I tested them
importing directly to the page without storing the imported contents in
variables).
I really don't know what else to try.
Thank you to those who had the patience to read and to those who will be so
kind to reply.
Valeria