XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
princy MathewSubject: XSLT transformations with JDK1.5 and Tomcat 5.5
Author: princy Mathew
Date: 21 Oct 2008 10:31 AM
Greetings to all,

I have an application that converts XSL to PDF using FOP. This application works fine in JDK 1.4 and Tomcat5.0.

But when I moved this application into JDK1.5 and Tomcat 5.5 I am getting errors

Initially,the error was related to serializer.jar. I heard that JDK 1.5 has inbuilt version of xalan, which requires serializer.jar. So I downloaded the serializer.jar and I had put it in lib folder of my application.
Upon doing this, the error related to serializer.jar dissappeared. But now I am getting error for str:tokenize.

In my XSL file, I am using the following code snippet:

<xsl:variable name="tokens">
<xsl:value-of select="str:tokenize('apple~^orange~^peach',$separater)"/>
</xsl:variable>

<fo:block>First Value is ....<xsl:value-of select="$tokens[1]"/></fo:block>



But when I execute, i get the error at line where I try to access the value of $tokens[1].

The error I get is
java.lang.ClassCastException: org.apache.xpath.objects.XString.

Any help appreciated.

Thanks in advance
princy



Postnext
mj ashSubject: XSLT transformations with JDK1.5 and Tomcat 5.5
Author: mj ash
Date: 23 Oct 2008 02:44 PM
Do you realize that when you assign a variable using the VALUE rather than the SELECT attribute the variable is assigned a Result Tree Fragment and you cannot access elements from a Result Tree Fragment. Try using the select="..." in your variable assignment.

Postnext
princy MathewSubject: XSLT transformations with JDK1.5 and Tomcat 5.5
Author: princy Mathew
Date: 28 Oct 2008 07:29 AM
Thank you for your suggestion of using 'select' attribute instead of 'value-of' when declaring variables.

I modified my XSL as shown below and now I am getting the output successfully.

<xsl:variable name="tokens" select="str:tokenize('apple~^orange~^peach',$separater)"/>


But I wonder how the value-of was working fine with JDK1.4 and Tomcat5.0

Postnext
mj ashSubject: XSLT transformations with JDK1.5 and Tomcat 5.5
Author: mj ash
Date: 28 Oct 2008 12:06 PM
Shhh... If you hadn't upgraded and everything was still working fine they wouldn't need you to fix it!

Not sure, but generally (hopefully) everything gets tighter and better defined/refined as we move forward.

Glad it worked out for you,

-mike

Postnext
princy MathewSubject: XSLT transformations with JDK1.5 and Tomcat 5.5
Author: princy Mathew
Date: 30 Oct 2008 03:08 AM
Actually I have around 300 XSL files that requires this change.

So modifying and testing them will be a cumbersome task.

So I am still looking for a solution that won't require a change in my XSL files.

Thanks in advance
princy

Postnext
mj ashSubject: XSLT transformations with JDK1.5 and Tomcat 5.5
Author: mj ash
Date: 30 Oct 2008 09:30 AM
Have you tried the debugger? Check out the type and value held in $tokens. Maybe you can manipulate it directly, however that sounds more fragile than re factoring things as they should have been.

Postnext
princy MathewSubject: XSLT transformations with JDK1.5 and Tomcat 5.5
Author: princy Mathew
Date: 31 Oct 2008 09:56 AM
I feel that JDK1.4 is using Xalan Java 2.4.1 version while JDK 1.5 has an inbuilt higher xalan version.

I have got an information that we can override the inbuilt versions in JDK by placing the required files in the following folders:

<JAVA_HOME>/lib/endorsed
<JAVA_HOME>/jre/lib/endorsed

I tried downloading Xalan Java 2.4.1 from
http://archive.apache.org/dist/xml/xalan-j/

But the downloaded zip file seems to be invalid.

Is there any other site from which I can download the Xalan Java 2.4.1 version

Any help appreciated

Thanks in advance
princy

Posttop
mj ashSubject: XSLT transformations with JDK1.5 and Tomcat 5.5
Author: mj ash
Date: 31 Oct 2008 08:41 PM
Don't know of any but...
though I don't know or care to know specifically the issue that you are having or how to solve it to minimize your re-work, all of these technologies have moved forward and it behooves you to stay current or even jump ahead and resolve the issue within a known boundary.

I suggest you don't try to patch the pieces together (ranging from Java 1.4, xalan 2.4, DOM2, SAX, JAXP to Java 1.5, xalan 2.7, DOM3, SAX2, JAXP/JAXB not to mention Java6) from what was working with your "old" environment to what you might get to work in the "new" but won't know why it stops working next week.

Try moving ahead and working with the pieces that have also moved ahead. Check out this link and the others around it to get a feel for the progression of each and all of the pieces that need to play together.

http://java.sun.com/javase/technologies/core/xml/index.jsp

note the links...
XML Documentation: J2SE 1.4.2 | J2SE 5.0 | Java SE 6
and the details and differences

Remember too, to use the <xsl:variable name="myVar">value of myval</xsl:variable> leaves $myVar with a Result Tree Fragment with its parts not accessible in the way you try, this I do know! (See Tennison's Beginning XSLT) Find and replacing 300 files is nothing! And the good unit testing I know you spent time on early in the development process should still work to quickly test the change ;-)

Good Luck with your studies,

-mike

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.