Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JDK 1.5 - podmiana transformera XSL

1 view
Skip to first unread message

Mikolaj Rydzewski

unread,
Dec 15, 2006, 7:23:25 AM12/15/06
to
Witam,

Problem jest nastepujacy: mam dokonac transformacji XSL przy uzyciu
otrzymanych plikow. Problem w tym, ze pod JDK 1.5 to sie nie udaje (a z
roznych powodow chcialbym aby proces ten przebiegal pod 1.5 wlasnie).

Sam kod javy jest standardowy:

Source xmlSource = new StreamSource(new File("test.xml"));
Source xslSource = new StreamSource(new File("test.xsl"));
Result result = new StreamResult(System.out);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(xslSource);
transformer.transform(xmlSource, result);

Transformacja z poziomu xsltproc przebiega bez problemow. Transformacja
z poziomu plugina XSLT w jEdicie tez przebiega bez problemow. Gdy kompiluje
program dla 1.4 (i uruchamiam pod 1.4) to wszystko jest takze ok. Czyli
moge wnioskowac, ze nie ma bledow w samych plikach xsl.

Problem mam z uruchomieniem pod 1.5. Nie pomaga ustawienie
-Djava.endorsed.dirs na katalog z dobra wersja Xalana, nie pomaga tez
ustawienie system property javax.xml.transform.TransformerFactory na
org.apache.xalan.processor.TransformerFactoryImpl

/usr/lib/j2sdk1.5-sun/bin/java -cp bin
-Djava.endorsed.dirs=~/.jedit/jars
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
test.transform.TestStylesheet
Exception in thread "main"
javax.xml.transform.TransformerFactoryConfigurationError: Provider
org.apache.xalan.processor.TransformerFactoryImpl could not be
instantiated: java.lang.NullPointerException
at
javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:109)
at test.transform.TestStylesheet.main(TestStylesheet.java:27)

Uruchomienie w 'golym' 1.5 daje bledy w rodzaju:
Attribute 'trueValue' outside of element.
ERROR: 'Cannot convert data-type 'string' to 'node-set'.'
FATAL ERROR: 'Could not compile stylesheet'
Exception in thread "main"
javax.xml.transform.TransformerConfigurationException: Could not compile
stylesheet
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:824)
at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:619)
at test.transform.TestStylesheet.main(TestStylesheet.java:30)

Z tego co szukalem w sieci, to winny jest kompilator Xalana (ow xsltc)
ktory nie do konca sobie ze wszystkim radzi. Pytanie wiec: jak moge albo
wylaczyc ow kompilator albo jak zmusic JDK 1.5 do uzycia innego Xalana,
nie tego z samego JDK?

--
Mikolaj Rydzewski <mi...@ceti.pl> http://ceti.pl/~miki/
PGP KeyID: 8b12ab02
There are three kinds of people: men, women, and unix.

ciukes

unread,
Dec 17, 2006, 4:56:21 PM12/17/06
to
Mikolaj Rydzewski wrote:
> Witam,
>
> Problem jest nastepujacy: mam dokonac transformacji XSL przy uzyciu
> otrzymanych plikow. Problem w tym, ze pod JDK 1.5 to sie nie udaje (a z
> roznych powodow chcialbym aby proces ten przebiegal pod 1.5 wlasnie).
>
>...

> Z tego co szukalem w sieci, to winny jest kompilator Xalana (ow xsltc)
> ktory nie do konca sobie ze wszystkim radzi. Pytanie wiec: jak moge albo
> wylaczyc ow kompilator albo jak zmusic JDK 1.5 do uzycia innego Xalana,
> nie tego z samego JDK?
>
Tez spotkalem ten problem w wersjach wczesniejszych niz update 8.
Sprawdz czy problem wystepuje w najnowszym jre. Jesli nie to "wstaw"
xalan'a & xerces'a do katalogu {JRE_ROOT}/lib/endorsed.

Pozdrawiam,
ciukes.

0 new messages