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: xalan-j-users@xml.apache.org
        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: xalan-j-users@xml.apache.org
        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: xalan-j-users@xml.apache.org
        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?
        
        
        

Reply via email to