質問

次のエラーが表示されます:

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ファイルの先頭が読み取りになりました。

<?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">

そして失敗しているXMLは

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

このコードは、Tomcat 5.0を実行しているサーバーでは機能しますが、Tomcat 5.5を実行しているサーバーでは機能しません。コードは環境上の問題ではなく、1つのサーバーで動作しているためだと思います。

XSLTは、JSPページを介してXMLに適用されています。私には、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.*"%>

更新 問題は、SaxonがXMLパーサーとして選択されていることです。 Saxonはこの機能をサポートしていません。 Saxon.jarを削除すると問題が解決します。

役に立ちましたか?

解決

XSLTのどこかで、<!> quot; { http://exslt.orgという名前の関数を参照しています。 / dynamic } evaluate()<!> quot;そして、あなたはそれに期待する引数の数を与えていません。

または...追加している拡張機能が見つかりません。

他のヒント

Xalanの古いバージョンを使用している可能性があります

xalan:evaluate() 拡張機能。

詳細については、 このスレッド

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top