したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

B11 と readcgi.js のスレ#9 @避難所

272名無しさん@避難所:2020/09/22(火) 20:14:23 ID:HJdBsN0U0
>>270
まだ雑で、同期した後の処理が動いていなかったり
GraalJS以外で動かなくなっていないかどうか確認していないので
他人には配布できないですが、なんとかSync2ch同期は動きました

スクリプトからJavaのシステムプロパティを取得できない原因は、
V2CEvalScript#doScriptAction()で、vAccessControlContextで制限してスクリプトを
呼び出しているからでした
(正確には、これだとプロパティが取得できないだけでなく
Systemを含めjava.langのクラスが軒並み使えていない状態でした)

手抜きで var3 = AccessController.doPrivileged(var1); として
AccessControlContextなしで実行するように書き換えることでとりあえず回避できました
本当は必要なPermissionを調べるべきですがやっていません
ということはクラスローダーは白だったっぽいですが、これもまだ裏をとっていません

また、V2CJSE6Utilでエンジン作成直後にbindings.put("polyglot.js.allowHostAccess", true);
を呼んでおかないと、JavaScriptからJavaのオーバーロードメソッドを呼び出すところが
ほとんど解決できないので、呼び出すように書き換え

v2c_sync_B11.txt側は、
conf.favTabがStringなのをv2c.favorites.getFavorite(int)の引数に渡していたリ
v2c.getXXXFile()が返したFileをv2c.readFile(String)の引数に渡していたりするのを
RhinoやNashornではよろしく変換してくれていたようですがエラーになるので
片っ端から本来の型に変換するコードを挿入

これで「同期完了」表示が出るところまでは行けました
まだ型変換コードを完全に入れられてないせいだと思いますが
その後でエラーになっています

v2c_sync_B11.txtを頑張って完全に書き換えたとしても
他のスクリプトが動かないので
型変換ルールを教える方法を調べたほうがよさそうに思っています

とはいえ、時間切れ・・続きはまた連休のある時にでもやってみます

プロジェクトは今いただいても生かせなさそうなのでお気持ちだけ
ありがとうございます




掲示板管理者へ連絡 無料レンタル掲示板