  | |  | Xalan and jstl 1.1 problem with transform tag | Xalan and jstl 1.1 problem with transform tag 2006-10-23 - By Valeria P.
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="${requestScope.xmlUrl}" /> <c:import var="xslText" url="${requestScope.xslUrl}" /> <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
|
|
 |