2009-01-16 12 views
7

मैं निम्नलिखित त्रुटि मिलती नहीं मिली:जावा/XSLT: एक मिलान 1-तर्क समारोह

javax.servlet.ServletException: Cannot find a matching 1-argument function named {http://exslt.org/dynamic}evaluate() 
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841) 
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774) 

मेरी xslt फ़ाइल के शीर्ष है

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0" 
    xmlns:dyn="http://exslt.org/dynamic" 
    extension-element-prefixes="dyn"> 

क्या तुम जानते हो कि मैं क्यों हो रही हो सकता है यह गलती?

अद्यतन अब

मेरी एक्सएमएल फ़ाइल के शीर्ष पढ़ता है।

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0" 
    xmlns:xalan="http://xml.apache.org/xalan" 
    exclude-result-prefixes="xalan"> 

और एक्सएमएल जहाँ हम असफल रहे हैं

<xsl:template name="test"> 
    <xsl:param name="param" /> 
    <xsl:value-of select="$param"/> 
    <xsl:value-of select="xalan:evaluate($param)"/> 
</xsl:template> 

इस कोड है बिलाव 5.0 चला रहे एक सर्वर पर काम करता है लेकिन बिलाव 5.5 चल रहा है एक सर्वर पर काम नहीं कर रहा। मुझे कल्पना है क्योंकि कोड एक सर्वर पर काम कर रहा है और यह एक पर्यावरणीय समस्या नहीं है।

एक्सएसएलटी को जेएसपी पेज के माध्यम से एक्सएमएल पर लागू किया जा रहा है। मेरे लिए ऐसा लगता है कि xalan.jar फ़ाइल का उपयोग नहीं किया जा रहा है। JSP के शीर्ष है:

<%@page import="javax.xml.transform.*"%> 
<%@page import="javax.xml.transform.stream.*"%> 
<%@page import="   java.security.Principal, 
      java.net.URL, 
      java.net.URLConnection, 
      java.io.InputStream, 
      java.io.InputStreamReader, 
      java.io.Reader, 
      java.io.BufferedReader, 
      java.io.File, 
      javax.xml.transform.*, 
      javax.xml.transform.stream.*, 
      javax.xml.transform.*, 
      javax.xml.transform.stream.*"%> 

अद्यतन समस्या यह है कि सैक्सन XML पार्सर के रूप में चुना जा रहा है। सैक्सन इस कार्यक्षमता का समर्थन नहीं करता है। Saxon.jar को हटाने से समस्या ठीक हो जाती है।

+0

वाह, अस्पष्ट :) जानना अच्छा है। फिक्स +1 –

उत्तर

1

कहीं भी आपके एक्सएसएलटी में आप "{http://exslt.org/dynamic} मूल्यांकन()" नामक फ़ंक्शन का जिक्र कर रहे हैं और आप इसे तर्कों की संख्या नहीं दे रहे हैं।

या ... यह आपके द्वारा जोड़े जाने वाले एक्सटेंशन को ढूंढने में असमर्थ है।

+0

या पोस्ट करने के लिए धन्यवाद ... या आप जो एक्सटेंशन जोड़ रहे हैं उन्हें ढूंढने में असमर्थ है। ऐसा लगता है। कोई विचार है कि मुझे विस्तार कैसे मिलेगा? –

+0

एक्सटेंशन से मेल नहीं खाता सही है। –

1

संभावना है कि आप Xalan के पुराने संस्करण का उपयोग कर रहे हैं।

xalan:evaluate() एक्सटेंशन का उपयोग करने के बजाय प्रयास करें।

this thread में इस पर और पढ़ें।

+0

xalan का उपयोग करने के लिए परिवर्तित: मूल्यांकन() लेकिन फिर भी एक ही त्रुटि दे रहा है। –

संबंधित मुद्दे