Проблема с Апплетом Java <-> коммуникация JavaScript

Я испытываю затруднения, заставляя Апплет Java общаться с кодом JavaScript на странице, на которой размещается апплет. Это иногда работает, но othertimes, для которого это выдает неясное исключение, тот поиск с помощью Google, не поднял полезной информации помимо нескольких отчетов об ошибках Java, которые никогда не разрешались (благодарит Sun).

Вот код, который я использую:

JSObject win = JSObject.getWindow(this);
Object[] args = new Object[1];
args[0] = "test argument";
String result = (String) win.call("testJSfunc", args); // XXX

Вот исключение, я вхожу в строку, отмеченную//XXX. Обратите внимание, что это неустойчиво. Часто это работает, но иногда это не делает, с помощью того же точного кода. Перезагрузка страницы неоднократно будет производить ошибку довольно быстро.

netscape.javascript.JSException: No registered plugin for applet ID 1
    at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
    at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
    at sun.plugin2.main.client.MessagePassingJSObject.call(Unknown Source)
    at TestApplet.testCallJS(TestApplet.java:159)
    at TestApplet.init(TestApplet.java:139)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Есть ли другой более стабильный способ связаться между Java и JavaScript, который я должен использовать?

---Больше информации---

Я использую deployJava.js сценарий в соответствии с Sun для встраивания апплета на лету. Я удостоверился, что MAYSCRIPT включен. Я знаю, что это не проблема с MAYSCRIPT, потому что коммуникация работает часть времени.

6
задан davr 22 March 2010 в 19:43
поделиться

2 ответа

Я думаю, что решил проблему, установив classloader_cache=false и separate_jvm=true. ...как только я установил оба этих параметра, периодические непонятные ошибки прекратились. Надеюсь, это решит проблему навсегда.

1
ответ дан 17 December 2019 в 20:30
поделиться

Убедитесь, что у вас есть MAYSCRIPT в теге вашего апплета.

<applet id="..." code="..." name=".." codebase="..." archive="..."  width="100%" height="100%" MAYSCRIPT>
1
ответ дан 17 December 2019 в 20:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: