Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从xslt调用java函数不起作用_Java_Eclipse_Xalan - Fatal编程技术网

从xslt调用java函数不起作用

从xslt调用java函数不起作用,java,eclipse,xalan,Java,Eclipse,Xalan,我知道有很多关于它的回应,但我想他尝试了很多,但都没有成功,所以,我来了: 我有一个XSL,我在里面调用一个java方法。在几次尝试后都找不到mypackage.MyClass,我得到了“实例方法new需要一个对象作为第一个参数”的粗略翻译,很抱歉。 但是MyClass没有定义构造函数,甚至没有默认构造函数。我试图定义一个空构造函数,但没有效果 当我尝试调用任何函数时,我会得到一个NullPointerException,因为我的实例变量为null。如果我采用我的方法并将其添加为静态,我会得到“

我知道有很多关于它的回应,但我想他尝试了很多,但都没有成功,所以,我来了:

我有一个XSL,我在里面调用一个java方法。在几次尝试后都找不到mypackage.MyClass,我得到了“实例方法new需要一个对象作为第一个参数”的粗略翻译,很抱歉。 但是MyClass没有定义构造函数,甚至没有默认构造函数。我试图定义一个空构造函数,但没有效果

当我尝试调用任何函数时,我会得到一个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>
我使用EclipseLuna进行调试,使用Xalan2.7.1。 我的类在{project}/src/dsig文件夹下,我的xsl在{project}/resources文件夹下

我已经用xalan:extension标签测试过了,在官方的xalan页面中缩写为,还有很多例子,包括一些来自这个论坛的例子,所有这些都是一样的

你能帮我一下吗

先谢谢你

问候


Tistklehoff

xmlns:test=java:mypackage.MyClass?xmlns:test=mypackage.MyClass可能应该是xmlns:test=xalan://mypackage.MyClass 但除此之外,你在这里的东西应该已经起作用了。谢谢你的回复!对于xmlns:test=java:mypackage.MyClass,方法instance和static都返回:“instance method new/go需要一个实例对象作为第一个参数”。通过添加xmlns:xalan=http://xml.apache.org/xalan和xmlns:test=xalan://mypackage.MyClass 结果是一样的。还有其他想法吗?亲切的问候。
package mypackage;

public class MyClass{

    public String myMethod(){
        return "YESSSS!!!";
    }

    public static String go(){
        return "GOOOO!!!";
    }
}