Hi Mark, Also make sure, you have that class: org.dspace.saxon.ConfigurableTransformerFactory available on the CLASSPATH (-> WEB-INF/lib/*.jar) And a proper version/config for Saxon HE. Here is the guide: https://stackoverflow.com/questions/22483436/using-saxon9-for-xslt-with-apache-cocoon-2-2
Greetings, Greg czw., 5 gru 2019 o 16:13 Javier Puerto <jav...@apache.org> napisał(a): > Hi Mark, > > I recommend you to use the Spring configuration. I never had this > requirement before but by the error message and the configuration fragment > that you have sent the NPE is caused because you are not passing an > instance of "org.dspace.saxon.ConfigurableTransformerFactory", you are > passing a String instead. > > <property name='transformerFactory' > value='org.dspace.saxon.ConfigurableTransformerFactory'/> > > IIRC you should change it to: > <property name='transformerFactory'> > <bean class="org.dspace.saxon.ConfigurableTransformerFactory"/> > </property> > > The attribute "value" is for literal values. You can also define the bean > with an ID and then use the attribute "ref" with the ID of the bean. > I hope that helps. > > Salu2. > > El mié., 4 dic. 2019 a las 22:46, Mark H. Wood (<mw...@iupui.edu>) > escribió: > >> I'm using Cocoon 2.2. I need to pass a custom XSLT transformer >> factory (that wraps Saxon's to configure it) to TraxProcessor, and the >> advice I've found in several places around the Web doesn't seem to be >> working: my factory class never gets instantiated. >> >> I've got a file META-INF/cocoon/avalon/cocoon-core-saxon-xslt.xconf: >> >> <?xml version="1.0" encoding="UTF-8"?> >> <components> >> <component role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon" >> class="org.apache.cocoon.components.xslt.TraxProcessor"> >> <parameter name="use-store" value="true"/> >> <parameter name="transformer-factory" >> value="org.dspace.saxon.ConfigurableTransformerFactory"/> >> </component> >> </components> >> >> I also tried copying it to WEB-INF/cocoon and it didnt' seem to work >> there either. >> >> I do have <configurator:settings/> and <avalon:bridge/> in the Spring >> config. >> >> Is there some way to debug component configuration and see if the file >> is even being looked for (and where *is* configuration looking)? The >> Cocoon site directs me to Excalibur, which directs me to Avalon, which >> says that Avalon is wound up and directs me back to Excalibur.... >> >> >> >> I've also tried to configure the thing using Spring: >> >> <bean name='org.apache.excalibur.xml.xslt.XSLTProcessor/saxon' >> class='org.apache.cocoon.components.xslt.TraxProcessor' >> init-method='initialize' >> destroy-method='dispose'> >> <!--property name='use-store' value='true'/--> >> <property name='transformerFactory' >> value='org.dspace.saxon.ConfigurableTransformerFactory'/> >> </bean> >> >> but so far I'm missing something: TraxProcessor.sourceToSAX throws an >> NPE. I'm probably not setting the parameters correctly -- there isn't >> a setter for use-store at all, for example. >> >> I've found any number of pages that tell me Avalon configuration is >> being replaced by Spring, but nothing practical on how to convert >> Avalon configuration (such as the first sample above) to Spring, or >> even how to write fresh Spring configuration for Cocoon components. >> It would be nice to know how to do this even if I wind up using the >> Avalon approach with the present task. >> >> -- >> Mark H. Wood >> Lead Technology Analyst >> >> University Library >> Indiana University - Purdue University Indianapolis >> 755 W. Michigan Street >> Indianapolis, IN 46202 >> 317-274-0749 >> www.ulib.iupui.edu >> >