Saxon が WSO2 ESB 4.5 の XSLT プロセッサ (HE エディション) になったため、XSLT スタイルシート (ESB 4.0.3 の Xalan で利用可能) のカスタム Java 関数のサポートが失われたのではないかと思っています。
ESB 4.0.3 で動作するオリジナルの XSLT:
カスタムの DateParser.jar を esb4.5.0/repository/components/dropins にコピーしました
<xsl:stylesheet extension-element-prefixes="transform" version="1.0"
xmlns:transform="xalan://my.extension.DateParser"
...
<xsl:value-of select="transform:sdf('dd.MM.yyyy HH:mm:ss',./timestamp)"/>
これはエラーログに表示されました(短縮):
ERROR XSLTMediator Unable to perform XSLT transformation using :
Caused by: net.sf.saxon.trans.XPathException: Cannot find a matching function named {xalan://my.extension.DateParser}sdf()
XSLT を Saxon 用に変更しました。ESB 4.5.0 では動作しません ###
Saxon はカスタム Java 関数を Xalan とは異なる方法で処理するため、XSLT-Stylesheet を次のように変更しました。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:transform="java:my.extension.DateParser"
...
<xsl:value-of select="transform:sdf('dd.MM.yyyy HH:mm:ss',./timestamp)"/>
これがエラーログに表示されました(短縮):
Caused by: net.sf.saxon.trans.XPathException: Cannot find a matching ... function named {java:my.extendsion.DateParser}sdf(). Note that direct calls to Java methods are not available under Saxon-HE
標準の WSO2 ESB ディストリビューション (Saxon-HE を含む) では、「Java メソッドの直接呼び出し」がサポートされないのではないかと考えています。Saxon-Enterprise (有料版) として、このサポートを提供します。