installing jaxp transformer for Oxygen Editor 16.1

Here should go questions about transforming XML with XSLT and FOP.
atuccill
Posts: 2

installing jaxp transformer for Oxygen Editor 16.1

Thu Feb 05, 2015 1:26 am

Hello,

I am working on a java application that transforms XML documents using the "default" JAXP/javax transformer (javax.xml.transform.TransformerFactory). I am using Oxygen Editor 16.1 to develop the stylesheets and want to test my stylesheets in Oxygen with the same transformer that the java application uses. I've selected the JAXP transformer in the transformation scenario dialog but I got the error message

'A JAXP transformer implementation could not be instantiated! Please install it in the folder: file:/C:/Program Files/Oxygen XML Editor 16/lib/ and set the transformer factory property in Preferences -> XML -> XSLT-FO-XQuery -> XSLT. Original error was: class java.lang.IllegalAccessException with message: Class ro.sync.xml.transformer.c can not access a member of class javax.xml.transform.TransformerFactory with modifiers "protected"'

I then tried setting the "javax.xml.transform.TransformerFactory" system property to "javax.xml.transform.TransformerFactory" (that seems weird but I believe it is the right class name), changing the validation engine to JAXP, and putting one or both of the following jars in the specified location:
JAXP_160.jar (downloaded from https://jaxp.java.net/downloads.html)
javax.xml_1.3.4.v201005080400.jar (copied from my Eclipse installation)

but I get the same error. Does anyone know how I should configure the JAXP transformer? Thanks for any help.
adrian
Posts: 2390

Re: installing jaxp transformer for Oxygen Editor 16.1

Thu Feb 05, 2015 11:53 am

Hi,

Note the instructions from the JAXP download page. JAXP_160.jar is an installer jar, it's not the actual JAXP jar library. So you must first install/unpack it (preferably not in the Oxygen folder):

Code: Select all

java -jar JAXP_160.jar

Then copy (from jaxp-1_6_0\lib) jaxp-ri.jar to the Oxygen/lib folder. Note that jaxp-api.jar is not necessary (Oxygen has its own), so it would be best to leave it out.

As fas as I can tell, the javax.xml.transform.TransformerFactory (the Value field from Preferences -> XML -> XSLT-FO-XQuery -> XSLT) should be set to com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl (that's the default that I found set in jaxp-ri.jar\META-INF\services\javax.xml.transform.TransformerFactory).
Also note that this transformer factory (probably an older version) is built into the Java runtime (Java SE 6 and later), so you can simply set the Value in Oxygen and just give it a go (without copying the jar).
Unknowingly you may have actually been using the builtin one, and not the JAXP library (1.6.0) that you mentioned. Check within your Java code which one you are using:
How do I find out which JAXP implementation is in use and where it was loaded from?

Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
atuccill
Posts: 2

Re: installing jaxp transformer for Oxygen Editor 16.1

Thu Feb 05, 2015 7:08 pm

That worked. Thanks very much for the help and info, Adrian!

Return to “XSLT and FOP”

Who is online

Users browsing this forum: No registered users and 0 guests