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