【发布时间】:2018-07-02 14:45:43
【问题描述】:
这个问题一直让我发疯。我正在尝试在 ColdFusion 中使用 Java 来创建 Document 对象。当我这样做时:
nd = createObject("java","javax.xml.parsers.DocumentBuilder");
我可以转储 nd 并查看它是否正确加载了所有方法:
object of javax.xml.parsers.DocumentBuilder Class Name javax.xml.parsers.DocumentBuilder
Method / Return Type
getDOMImplementation() / org.w3c.dom.DOMImplementation
getSchema() / javax.xml.validation.Schema
isNamespaceAware() / boolean
isValidating() / boolean
isXIncludeAware() / boolean
newDocument() / org.w3c.dom.Document
parse(java.io.File) / org.w3c.dom.Document
parse(java.lang.String) / org.w3c.dom.Document
parse(org.xml.sax.InputSource) / org.w3c.dom.Document
parse(java.io.InputStream, java.lang.String) / org.w3c.dom.Document
parse(java.io.InputStream) / org.w3c.dom.Document
reset() / void
setEntityResolver(org.xml.sax.EntityResolver) / void
setErrorHandler(org.xml.sax.ErrorHandler) / void
我正在尝试调用 newDocument() 方法。我在 cfscript 和 cfsets 中都尝试了以下所有方法:
nd.newDocument();
nd.newDocument(JavaCast("null",""));
nd = createObject("java","javax.xml.parsers.DocumentBuilder").newDocument();
nd = createObject("java","javax.xml.parsers.DocumentBuilder").newDocument(JavaCast("null",""));
但是,无论我尝试哪种方法,我都会收到此错误:
要么没有具有指定方法名称和参数类型的方法 或者 isNamespaceAware 方法被重载的参数类型 ColdFusion 无法可靠地破译。 ColdFusion 找到了 0 个与 > 提供的参数匹配的方法。如果这是一个 Java 对象并且您验证了该方法 > 存在,请使用 javacast 函数来减少歧义。
我可以看到该方法已加载..该方法没有重载..它不需要任何参数..而且,即使我明确告诉 CF 我传入的是 null,它也找不到方法..
我尝试访问类中的其他方法 - 但它也找不到这些方法。我不确定为什么我可以转储类的内容 - 我可以看到所有方法。但是,不知何故当我试图打电话给他们时,CF 很困惑,找不到他们..
任何想法都会非常有帮助..
谢谢!!
【问题讨论】:
标签: java coldfusion