我知道有很多回复,但我和其中许多人一起尝试没有成功,所以,我在这里:
我有一个XSL,我正在调用java方法。经过几次尝试(找不到mypackage.MyClass)我得到了实例方法new需要一个对象作为第一个参数' (粗略翻译,我很抱歉)。 但是MyClass没有定义构造函数,甚至没有默认的构造函数。我尝试通过定义一个void构造函数,但没有效果。
当我尝试调用任何函数时,我得到一个NullPointerException,导致我的实例变量为null。如果我采用我的方法并添加为静态,我会得到'实例方法MyMethod需要一个对象作为第一个参数'。
和,最好的。如果我使用任何默认的java类(java.util.Date,java.lang.XXXX等),我的测试工作正常!
我疯了......
这是我的上一次test.xsl
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="http://xml.apache.org/xalan/java/java.util.Date"
xmlns:java="http://xml.apache.org/xalan/java"
xmlns:test="mypackage.MyClass"
exclude-result-prefixes="date java test">
<xsl:template match="/">
<!-- WORKING EXAMPLE -->
<xsl:variable name="dateObject"
select="date:new(java_lang:Math.max(1027695561000,1038695561000))"/>
Date of object: <xsl:value-of select="$dateObject"/>
Time of object: <xsl:value-of select="date:getTime($dateObject)"/>
<!-- ERRORS... -->
<xsl:variable name="testObject1" select="test:new()"/>
<xsl:variable name="result" select="test:myMethod($testObject1)"/>
<xsl:variable name="testObject2" select="test:go()"/>
</xsl:template>
</xsl:stylesheet>
我的班级:
package mypackage;
public class MyClass{
public String myMethod(){
return "YESSSS!!!";
}
public static String go(){
return "GOOOO!!!";
}
}
我使用eclipse Luna进行调试,并使用Xalan 2.7.1。 我的班级在{project} / src / dsig文件夹下,我的xsl在{project} / resources文件夹下。
我已经使用xalan:扩展标记进行了测试,使用了缩写(如官方xalan页面中)和许多示例(包括从该论坛中获取的一些)以及所有相同的内容......
你能帮我一把吗?
提前多多感谢。
问候。
Tistklehoff