Hi John,
I believe your problem that you haven't created an instance of the
class in which you're asking Xalan to execute a method. Since your
extension is written in Java, you should get rid of the
<xalan:component> syntax and use the abbreviated syntax
<http://xml.apache.org/xalan-j/extensions.html#java-namespace> .
However, the lack of a package name may hurt you; I've never tried that.
If all you want to do is invoke the constructor, use syntax like:
<xsl:variable name="MyTest" select="mytest:new()"/>
The error message is saying that Xalan thinks you're trying to call an
instance method on your object. To do that you have to include the
instance of the object in the method call. So, if your class had a
method "public void launch(String destination)"
<xsl:value-of select="mytest:launch($MyTest, 'Mars')"/>
Hope that helps,
Alex
________________________________
From: Wade, John F. (MSFC-NAS902099)[TBE]
[mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 02, 2007 8:50 AM
To: Wade, John F. (MSFC-NAS902099)[TBE]; Kevin Cormier
Cc: [email protected]
Subject: RE: Xalan extension functions
It's not Monday anymore. Oh well.
Here's the test case java code. It does exactly nothing.
Import java.util.*;
public class MyTest
{
public MyTest()
{}
}
The namespace and component definitions are:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet
xmlns:xsl=http://www.w3.org/1999/XSL/Transform
xmlns=http://www.w3.org/1999/xhtml
xmlns:doc=http://nwalsh.com/xsl/documentation/1.0
exclude-result-prefixes="doc"
xmlns:xalan=http://xml.apache.org/xalan
xmlns:mytest="MyTest"
extension-element-prefixes="mytest"
version="1.0">
<xalan:component prefix="mytest" functions="MyTest">
<xalan:script lang="javaclass" src="xalan://MyTest/"/>
</xalan:component>
Down in one of the templates I've added a line that says:
<xsl:value-of select="mytest:MyTest()"/>
And the error I get is:
(Location of error unknown)XSLT Error
(javax.xml.transform.TransformerException):
javax.xml.transform.TransformerException: Instance method call to method
MyTest requires an Object instance as first argument
...which isn't the error I remember getting last time I tried
this, but one thing at a time.
Suggestions?
*********************************
John F. Wade, PE
MSFC EO20 - TBE
________________________________
From: Wade, John F. (MSFC-NAS902099)[TBE]
[mailto:[EMAIL PROTECTED]
Sent: Fri 4/27/2007 3:29 PM
To: Kevin Cormier
Cc: [email protected]
Subject: RE: Xalan extension functions
Classpath has been my thought, too. I'm a real beginner at
this, and the environment I'm working with has two variants, so I'm not
sure how to determine what the classpath is in each case.
But, we'll start with the stylesheet and JAVA code on Monday and
go from there.
Thanks.
JFW
________________________________
From: Kevin Cormier [mailto:[EMAIL PROTECTED]
Sent: Fri 4/27/2007 3:11 PM
To: Wade, John F. (MSFC-NAS902099)[TBE]
Cc: [email protected]
Subject: Re: Xalan extension functions
Hi John,
All I can think of with the information you've given is to check
that your
class is on the classpath.
Could you send your stylesheet and Java class, and also show how
you
invoked the transformation and what the full error message was?