这个问题让我很生气.我正在尝试在ColdFusion中使用Java来创建Document对象.当我这样做:
nd = createObject("java","javax.xml.parsers.DocumentBuilder");
Run Code Online (Sandbox Code Playgroud)
我可以转储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
Run Code Online (Sandbox Code Playgroud)
我正在尝试调用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",""));
Run Code Online (Sandbox Code Playgroud)
但是,无论我尝试什么方法,我都会收到此错误:
要么没有指定方法名称和参数类型的方法,要么isNamespaceAware方法会使用ColdFusion无法可靠解密的参数类型重载.ColdFusion找到了0个与>提供的参数匹配的方法.如果这是一个Java对象并且您验证了方法>存在,请使用javacast函数来减少歧义.
我可以看到方法被加载..方法没有重载..它不需要任何参数..而且,即使我明确告诉CF我传入null,它也找不到方法. .
我尝试访问类中的其他方法 - 它也找不到那些..我不知道为什么我可以转储类的内容 - 我可以看到所有方法..但是,不知何故CF正在获得当我试着打电话给他们时,他们感到很困惑,找不到它们.
任何想法都会超级有用..
谢谢!!
我有一个使用 Express 的基本 Node.js 服务器。它需要能够处理 TCP 消息以及 UDP 消息。TCP 部分已启动并运行良好,但现在我需要集成一种嗅探 UDP 消息的方法。我尝试使用套接字向过滤器堆栈添加处理程序dgram,但没有成功。
const express = require('express');
const dgram = require('dgram');
// ...
const app = express();
const dgramSocket = dgram.createSocket('udp4');
// ...
app.use((req, res, next) => {
dgramSocket.on('listening', () => {
let addr = app.address();
console.log(`Listening for UDP packets at ${addr.address}:${addr.port}`);
});
dgramSocket.on('error', (err) => {
console.log(`UDP error: ${err.stack}`);
});
dgramSocket.on('message', (msg, rinfo) => {
console.log(`Received UDP message`);
});
next();
}
// ...
app.set('port', 8080);
Run Code Online (Sandbox Code Playgroud)
当我运行我的服务器时,其他一切都正常,但我的dgram部件甚至没有说它们正在监听。我对 …