RE: [xsl] Saxon: java extension functions

Subject: RE: [xsl] Saxon: java extension functions
From: "Richard Lewis" <richardlewis@xxxxxxxxxxxxxx>
Date: Tue, 15 Feb 2005 17:06:58 +0000
On Tue, 15 Feb 2005 16:48:33 -0000, "Michael Kay" <mike@xxxxxxxxxxxx>
said:
> The message means that it's looking for a class called MyClass and can't
> load one. If the class really is called MyClass, then changing the URI
> isn't
> going to help.
> 
Fair enough.
> 
> With exactly the same classpath, try
> 
> javap MyClass
> 
> from the command line.
> 
Yep, it works.

> Some reasons that such problems occur:
> 
> - the class is in a package
It's not (in fact, I tried putting it in one and altering the namespace
accordingly, but it didn't help)

> - the class isn't on the classpath
which it is.

> - the class isn't public
I'm afraid it is.

> 
> Try also giving the class a public default constructor. I don't think
> that
> should make any difference, but it could.
Tried that and no, it didn't.

Do you want me to post the code?

> 
> Michael Kay
> http://www.saxonica.com/
>  
> 
> > -----Original Message-----
> > From: Richard Lewis [mailto:richardlewis@xxxxxxxxxxxxxx] 
> > Sent: 15 February 2005 16:21
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] Saxon: java extension functions
> > 
> > Hello List,
> > 
> > This is a Saxon question:
> > 
> > I'm using Saxon 8.2B and I'm trying to add an extension 
> > class, MyClass.
> > 
> > <xsl:stylesheet version="2.0" ...
> >     xmlns:my="java:MyClass">
> > 
> > and create an instance of it:
> > 
> > <xsl:variable name="myClass" select="my:new($parameter)" />
> > 
> > and then call an instance function:
> > 
> > <xsl:variable name="x" select="my:getX($myClass, $parameter)" />
> > 
> > But, running Saxon with the -TJ options, I get "No Java class MyClass
> > could be loaded". I've tried every namespace I could think of
> > ("java://MyClass", "MyClass", "java:/usr/share/java/MyClass",
> > "MyClass.class", etc.) but none of them work. The class is in the
> > classpath (I even tried compiling and running a little Java program
> > using it and that worked).
> > 
> > Any ideas what I've done wrong?
> > 
> > Cheers,
> > Richard

Current Thread