Himanshu Yadav
Himanshu Yadav

Reputation: 13587

XSLT: Can not find Java class exception

It works fine if remove reference to Java class from xslt.
XSLT

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"
  exclude-result-prefixes="xs" xmlns:uuid="java:java.util.UUID">
    <xsl:template match="/">
            <xsl:for-each select="Client">
            <xsl:variable name="uid" select="uuid:randomUUID()"/>

Groovy

import java.util.UUID

TransformerFactory.newInstance()
                  .newTransformer( new StreamSource( new StringReader( xslt ) ) )
                  .transform( new StreamSource( new StringReader( xmlAsString ) ),
                              new StreamResult( w ) )

Exception

ERROR:  'Cannot find class 'java:java.util.UUID'.'
FATAL ERROR:  'Could not compile stylesheet'
Caught: javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet

Upvotes: 0

Views: 1167

Answers (2)

tim_yates
tim_yates

Reputation: 171054

I believe it should be:

xmlns:uuid="java://java.util.UUID"

Upvotes: 1

Himanshu Yadav
Himanshu Yadav

Reputation: 13587

Issue was with xmlns:uuid="java:java.util.UUID" I got from one of the blog post.
Updated it to xmlns:uuid="java.util.UUID" and it worked fine.

Upvotes: 0

Related Questions