У меня есть открытая статическая функция аргумента 0 в Java, которую я пытаюсь вызвать через XSLT в веб-приложении.Когда я запускаю его в tomcat (5.5.34), он работает нормально, но когда я запускаю его в JBoss (6.1 final), я получаю ошибку
TransformerException: Instance method call to method getScoreXMLTagClass requires an
Object instance as first argument
Мне интересно, использует ли JBoss другойПарсер XSLT - я полагаю, что хочу использовать Xalan, и я слышал, что Saxon (который используется в некоторых частях этого веб-приложения) может иметь проблемы совместимости с подобными вещами.Есть ли способ сказать, что он использует / заставить его использовать другой?Извиняюсь, если я пропустил некоторую важную информацию здесь, это не моя область знаний - дайте мне знать, если нужна какая-то другая информация.
edit: Чтобы показать, как это используетсявот код
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
...
xmlns:resources="java:com.example.MyResources"
<xmlns:rclass="java:com.example.MyClass">
<xsl:template name="scoreString">
<xsl:param name="string" />
<xsl:value-of select="resources:getString(rclass:getData(),$string,null)"/>
</xsl:template>
<xsl:template match="/">
<xsl:if test="normalize-space(.)">
<div>
<xsl:for-each select="s:scores/s:score">
<xsl:for-each select="s:net">
<dl>
<dt>
<xsl:call-template name="scoreString">
<xsl:with-param name="string">network</xsl:with-param>
</xsl:call-template>
<xsl:value-of select="@id"/>
</dt>
...
Я сократил имена классов, чтобы упростить его.Эквивалентная ошибка будет
TransformerException: Instance method call to method getData requires an
Object instance as first argument
edit 2
, метод
public static final Class getData()
{
return MyClass.class;
}