我正在运行一个带有 tomcat 和 Railo 的 linux 服务器。如果我尝试这个简单的代码:
check = "";
jSoupClass = createObject( "java", "org.jsoup.Jsoup" );
if(IsInstanceOf(jSoupClass,"org.jsoup.Jsoup")){
check = "ok";
}
writeDump(check );
如果我运行这个简单的代码,varcheck
总是空的。我用许多 java 类运行这个简单的测试,并且一切正常。
在我的应用程序中,我使用 jsoup 没有问题,但似乎无法运行这个简单的检查。我用它来检查文档的文档类型:
jSoupClass = createObject( "java", "org.jsoup.Jsoup" );
dom = jSoupClass.connect( "http://www.mutuiinpdap.net" ).userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6").timeout(10000).execute();
doc = dom.parse();
nods = doc.childNodes();
doctype = {};
for (key in nods) {
if(IsInstanceOf(key,"org.jsoup.nodes.DocumentType")){
doctype.string = key.toString();
switch(key) {
case "<!DOCTYPE html>":
doctype.declarations = "Html 5";
break;
case '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">':
doctype.declarations = "XHTML transitional";
break;
}
}
}
writeDump(doctype);
有没有办法解决这个问题?我可以使用不同的代码来检查哪个 doctype 是文档吗?
此代码在我的本地 Windows 机器上完美运行。但是在我安装了 Ubuntu 的生产服务器上中断了......
[编辑]
我也用这段代码测试过:
public function getDoctype(){
myClass = {};
jSoupClass = createObject( "java", "org.jsoup.Jsoup" );
whois = createObject("java", "org.apache.commons.net.whois.WhoisClient");
myClass.jj = "ko";
myClass.ww = "ko";
writeDump(jSoupClass);
writeDump(whois);
if(IsInstanceOf(jSoupClass,"org.jsoup.Jsoup")){
myClass.jj = "ok";
}
if(IsInstanceOf(whois,"org.apache.commons.net.whois.WhoisClient")){
myClass.ww = "ok";
}
return myClass;
}
我会得到一个 myClass.jj = "ko"; 和 myClass.ww = "ok";