找不到ColdFusion Java方法异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了找不到ColdFusion Java方法异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2921字,纯文字阅读大概需要5分钟。
内容图文
这个问题让我很生气.我正在尝试在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",""));
但是,无论我尝试什么方法,我都会收到此错误:
Either there are no methods with the specified method name and argument types
or the isNamespaceAware method is overloaded with argument types that
ColdFusion cannot decipher reliably. ColdFusion found 0 methods that match the > provided arguments. If this is a Java object and you verified that the method > exists, use the javacast function to reduce ambiguity.
我可以看到方法被加载..方法没有重载..它不需要任何参数..而且,即使我明确告诉CF我传入null,它也找不到方法. .
我尝试访问类中的其他方法 – 它也找不到那些..我不知道为什么我可以转储类的内容 – 我可以看到所有方法..但是,不知何故CF正在获得当我试着打电话给他们时,他们感到很困惑,找不到它们.
任何想法都会超级有用..
谢谢!!
解决方法:
您必须为documentBuilder工厂创建一个对象.在工厂的帮助下,您可以获得经过验证的xml信息.在这里,我创建了对象并使用documentbuilderfactory调用parse方法.
此外,您必须注入newInstance(),然后才能访问newdocument()方法.
我的Xml内容:testParse.xml
<?xml version="1.0"?>
<company>
<staff id="1001">
<firstname>yong</firstname>
<lastname>mook kim</lastname>
<nickname>mkyong</nickname>
<salary>100000</salary>
</staff>
<staff id="2001">
<firstname>low</firstname>
<lastname>yin fong</lastname>
<nickname>fong fong</nickname>
<salary>200000</salary>
</staff>
</company>
* CF代码:
<cfset myObj = createObject("java","javax.xml.parsers.DocumentBuilderFactory")>
<cfset createDocs = myObj.newInstance().newDocumentBuilder()>
<cfset parseDocs = createDocs.parse(expandpath('/testParse.xml'))>
<cfset getNodeName = parseDocs.getDocumentElement().getNodeName()>
<cfset getList = parseDocs.getElementsByTagName("staff")>
<cfloop index="i" from="1" to="#getList.getlength()#">
<!--- Do your business logic here --->
</cfloop>
我希望它对你有所帮助.谢谢.
内容总结
以上是互联网集市为您收集整理的找不到ColdFusion Java方法异常全部内容,希望文章能够帮你解决找不到ColdFusion Java方法异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。