Subject: [xsl] RE: How to call an external Java function From: Peter Kester <Peter.Kester@xxxxxxxxxxx> Date: Fri, 9 Jan 2009 09:31:38 +0100 |
Hi Steve, Is your class in a certain package or is it in the default package? Eg. If your class is in package com.medtronic.utils then you have to add the package name to the namespace: Xmlns:med="java:com.medtronic.utils.FontWidth" I use the same sort of calls and in my env it works like a charm (inside Oxygen If you set the extensions correct and outside Oxygen if you set the classpath right) If I remove part of the package name I receive the same kind of error message. Regards, Peter Ing. P.A. Kester Senior Consultant http://www.daidalos.nl/ Daidalos BV Source of Innovation Hoekeindsehof 1-4 2665 JZ Bleiswijk Tel.: +31 (0) 10 850 1200 Fax: +31 (0) 10 850 1199 http://www.daidalos.nl/ KvK 27164984 De informatie - verzonden in of met dit emailbericht - is afkomstig van Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit bericht kunnen geen rechten worden ontleend. Van: Ylvisaker, Steve [mailto:steve.j.ylvisaker@xxxxxxxxxxxxx] Verzonden: donderdag 8 januari 2009 20:42 Aan: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Onderwerp: [xsl] How to call an external Java function I have a working Java function that uses FontMetrics to determine the length in points of a given character stream. I am able to call the function from the windows command line and it runs just as I expect. Now I want to call that same function from my XSL stylesheet and I can't seem to get the correct incantation. I have set my classpath environment variable to include the path: c:\maps-jars\FontWidth.jar I have placed FontWidth.jar in folder c:\maps-jars FontWidth is the Java class. And I have run the following simple transformation with Saxon8: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:med="java:FontWidth" extension-element-prefixes="med"> <xsl:template match="/"> <xsl:variable name="testJava"> <xsl:value-of select="med:labelStringWidth('Helvetica World', 12, 'This is test text')"/> </xsl:variable> <xsl:message>result:<xsl:value-of select="$testJava"/></xsl:message> </xsl:template> </xsl:stylesheet> labelStringWidth is a method belonging to class FontWidth. I have run this under <oxygen/> and stand alone from the command line with Saxon8 and in both situations I receive the following error message: Description: XPath syntax error at char 64 on line 11 in {...rld', 12, 'This is test tex...}: Cannot find a matching 3-argument function named {java:FontWidth}labelStringWidth() Any help I can get on this would be very much appreciated. Steve [CONFIDENTIALITY AND PRIVACY NOTICE] Information transmitted by this email is proprietary to Medtronic and is intended for use only by the individual or entity to which it is addressed, and may contain information that is private, privileged, confidential or exempt from disclosure under applicable law. If you are not the intended recipient or it appears that this mail has been forwarded to you without proper authority, you are notified that any use or dissemination of this information in any manner is strictly prohibited. In such cases, please delete this mail from your records. To view this notice in other languages you can either select the following link or manually copy and paste the link into the address bar of a web browser: http://emaildisclaimer.medtronic.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] How to call an external J, Florent Georges | Thread | [xsl] RE: How to call an external J, Ylvisaker, Steve |
Re: [xsl] Testing Text, Mukul Gandhi | Date | Re: [xsl] Testing Text, David Carlisle |
Month |