You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by Silke <Pi...@gmx.net> on 2004/02/09 10:10:35 UTC
xsltc IllegalAccessError! can't override old version of xalan
Hi,
Hope someone of you can help me with my XSLTC (Translet) Problem,...
Tried to code a little example to test XSLTC and Translets for
XSL-Transformations.
The Problem:
-------------------
Following Code Sample doesnt work on my own Computer
Win XP, j2sdk1.4.2_03
doesn't work on a friends computer
Win 2000, j2sdk1.4.2_03
So, I dont have any suggestion why the code works on no one computer...
Code Sample (nearly the same, as at the Xalan-J Page):
----------------------------------------------------------------------------
-----
import java.io.*;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
[...]
System.setProperty(
"javax.xml.transform.TransformerFactory",
"org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
xsltSource = "xslFile.xsl";
xmlSource = "xmlFile.xml"
outpoutFile = "output.xml"
TransformerFactory transFactory = TransformerFactory.newInstance();
Templates translet = transFactory.newTemplates(xsltSource);
Transformer trans1 = translet.newTransformer();
trans1.transform(xmlSource, new StreamResult(outputFile));
[...]
How it works:
--------------------
Till Codeline
Templates translet = transFactory.newTemplates(xsltSource);
it still works -> the .class Translet is created
At Codeline
trans1.transform(xmlSource, new StreamResult(outputFile));
the Error occurs
Error PrintStackTrace
--------------------------------
java.lang.IllegalAccessError: class
org.apache.xml.dtm.ref.sax2dtm.SAX2DTM2$AncestorIterator cannot access its
superclass
org.apache.xml.dtm.ref.DTMDefaultBaseIterators$InternalAxisIteratorBase
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
at
org.apache.xalan.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:291)
at
org.apache.xalan.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:174)
at
org.apache.xalan.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:516)
at
org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:6
55)
at
org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:2
98)
I tried to override the old xalan-j 2.4.1 version in jdk1.4.2_03 with the Endorsed Standards
Override Mechanism. I want to use the xalan-j 2.5.2 version. But the checkEnvironment- Method
of the EnvironmentCheck-Class tells me that jdk still uses its own old version of xalan-j.
So, I still get the same error.
Can anybody tell me why this doesn't work? Are there any other possiblities to override
the old version?
Thanks for any helpfull hints
Hope my English isn't to bad to unterstand the Problem,.. ;)
Regards
silke
Re: xsltc IllegalAccessError! can't override old version of xalan
Posted by Christine Li <jy...@ca.ibm.com>.
Please refer to FAQ, http://xml.apache.org/xalan-j/faq.html#faq-N100CB
Christine Li
XSLT Development
IBM Toronto Lab
Tel: (905)413-2601
Email: jycli@ca.ibm.com
"Silke"
<Pieper78@gmx.net
> To
<xa...@xml.apache.org>
02/09/2004 04:10 cc
AM
Subject
xsltc IllegalAccessError! can't
override old version of xalan
Hi,
Hope someone of you can help me with my XSLTC (Translet) Problem,...
Tried to code a little example to test XSLTC and Translets for
XSL-Transformations.
The Problem:
-------------------
Following Code Sample doesnt work on my own Computer
Win XP, j2sdk1.4.2_03
doesn't work on a friends computer
Win 2000, j2sdk1.4.2_03
So, I dont have any suggestion why the code works on no one computer...
Code Sample (nearly the same, as at the Xalan-J Page):
----------------------------------------------------------------------------
-----
import java.io.*;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
[...]
System.setProperty(
"javax.xml.transform.TransformerFactory",
"org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
xsltSource = "xslFile.xsl";
xmlSource = "xmlFile.xml"
outpoutFile = "output.xml"
TransformerFactory transFactory = TransformerFactory.newInstance();
Templates translet = transFactory.newTemplates(xsltSource);
Transformer trans1 = translet.newTransformer();
trans1.transform(xmlSource, new StreamResult(outputFile));
[...]
How it works:
--------------------
Till Codeline
Templates translet = transFactory.newTemplates(xsltSource);
it still works -> the .class Translet is created
At Codeline
trans1.transform(xmlSource, new StreamResult(outputFile));
the Error occurs
Error PrintStackTrace
--------------------------------
java.lang.IllegalAccessError: class
org.apache.xml.dtm.ref.sax2dtm.SAX2DTM2$AncestorIterator cannot access its
superclass
org.apache.xml.dtm.ref.DTMDefaultBaseIterators$InternalAxisIteratorBase
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
at
org.apache.xalan.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:291)
at
org.apache.xalan.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:174)
at
org.apache.xalan.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:516)
at
org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:6
55)
at
org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:2
98)
I tried to override the old xalan-j 2.4.1 version in jdk1.4.2_03 with the
Endorsed Standards
Override Mechanism. I want to use the xalan-j 2.5.2 version. But the
checkEnvironment- Method
of the EnvironmentCheck-Class tells me that jdk still uses its own old
version of xalan-j.
So, I still get the same error.
Can anybody tell me why this doesn't work? Are there any other possiblities
to override
the old version?
Thanks for any helpfull hints
Hope my English isn't to bad to unterstand the Problem,.. ;)
Regards
silke