Tomcat と Railo で Linux サーバーを実行しています。この単純なコードを試してみると:
check = "";
jSoupClass = createObject( "java", "org.jsoup.Jsoup" );
if(IsInstanceOf(jSoupClass,"org.jsoup.Jsoup")){
check = "ok";
}
writeDump(check );
この単純なコードを実行すると、varcheck
は常に空になります。この単純なテストを多くのJavaクラスで実行し、すべてが完全に機能しています。
私のアプリでは jsoup を問題なく使用していますが、この単純なチェックを実行できないようです。これを使用して、ドキュメントの doctype を確認します。
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";